Skip to content

Enable dynamic filters for range-partitioned joins - #23854

Merged
alamb merged 25 commits into
apache:mainfrom
peterxcli:feat/hash-join-dynamic-filter-with-range-partition
Aug 11, 2026
Merged

Enable dynamic filters for range-partitioned joins#23854
alamb merged 25 commits into
apache:mainfrom
peterxcli:feat/hash-join-dynamic-filter-with-range-partition

Conversation

@peterxcli

@peterxcli peterxcli commented Jul 23, 2026

Copy link
Copy Markdown
Member

Which issue does this PR close?

Rationale for this change

Partitioned hash joins build one dynamic filter per build partition. Existing routing uses hash(key) % N, which cannot reproduce a Range partitioning layout.
Compatible Range co-partitioned joins instead need to route probe rows using their existing ordering and split points.

What changes are included in this PR?

  • Enable dynamic filter pushdown for hash joins with compatible Range-partitioned inputs.
  • Build a searched CASE expression that routes probe rows to the corresponding partition filter using the Range ordering and split points.
  • Move the TopK lexicographic filter builder into the shared ordering module for reuse.

Are these changes tested?

unit test.

Are there any user-facing changes?

Yes. This PR adds RangeExpr to the physical-expression protobuf model, which adds the public ExprType::RangeExpr enum variant. Downstream Rust consumers that exhaustively match ExprType must handle the new variant.

It also enables dynamic-filter pushdown for compatible Range-partitioned joins.

@github-actions github-actions Bot added the physical-plan Changes to the physical-plan crate label Jul 23, 2026

@saadtajwar saadtajwar left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work! 😁

Comment thread datafusion/physical-plan/src/joins/hash_join/shared_bounds.rs Outdated
Comment thread datafusion/physical-plan/src/joins/hash_join/shared_bounds.rs Outdated
Comment thread datafusion/physical-plan/src/ordering.rs Outdated
@peterxcli
peterxcli requested a review from saadtajwar July 24, 2026 19:15
@peterxcli

Copy link
Copy Markdown
Member Author

cc @gene-bordegaray @jayshrivastava @stuhood @adriangb — kindly pinging on this one. Please take a look if you have time, thanks!

@codecov-commenter

codecov-commenter commented Jul 24, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 79.51220% with 126 lines in your changes missing coverage. Please review.
✅ Project coverage is 81.00%. Comparing base (a05388e) to head (7274de3).

Files with missing lines Patch % Lines
datafusion/proto-models/src/generated/pbjson.rs 0.00% 70 Missing ⚠️
datafusion/physical-plan/src/repartition/mod.rs 84.69% 14 Missing and 16 partials ⚠️
...physical-plan/src/joins/hash_join/shared_bounds.rs 92.79% 10 Missing and 7 partials ⚠️
...tafusion/physical-plan/src/joins/hash_join/exec.rs 88.73% 3 Missing and 5 partials ⚠️
datafusion/proto/src/physical_plan/from_proto.rs 0.00% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #23854      +/-   ##
==========================================
- Coverage   81.01%   81.00%   -0.02%     
==========================================
  Files        1106     1106              
  Lines      383974   384464     +490     
  Branches   383974   384464     +490     
==========================================
+ Hits       311085   311433     +348     
- Misses      54554    54664     +110     
- Partials    18335    18367      +32     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@saadtajwar saadtajwar left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work!

@comphead

Copy link
Copy Markdown
Contributor

run benchmark tpch tpcds

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5080112985-1264-twmtz 6.12.85+ #1 SMP Mon May 11 08:17:35 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected

Comparing feat/hash-join-dynamic-filter-with-range-partition (1a141f3) to 1763417 (merge-base) diff using: tpch
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5080112985-1265-sp4z6 6.12.85+ #1 SMP Mon May 11 08:17:35 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected

Comparing feat/hash-join-dynamic-filter-with-range-partition (1a141f3) to 1763417 (merge-base) diff using: tpcds
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance: c4a-highmem-16 (12 vCPU / 65 GiB)

CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected
Details

Comparing HEAD and feat_hash-join-dynamic-filter-with-range-partition
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Query     ┃                           HEAD ┃ feat_hash-join-dynamic-filter-with-range-partition ┃    Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ QQuery 1  │ 38.40 / 39.27 ±0.96 / 41.13 ms │                     38.82 / 40.64 ±1.31 / 42.50 ms │ no change │
│ QQuery 2  │ 19.49 / 19.70 ±0.25 / 20.16 ms │                     19.32 / 20.13 ±0.90 / 21.35 ms │ no change │
│ QQuery 3  │ 31.13 / 32.66 ±1.15 / 34.45 ms │                     31.29 / 33.50 ±1.12 / 34.23 ms │ no change │
│ QQuery 4  │ 17.69 / 18.17 ±0.42 / 18.68 ms │                     17.59 / 17.72 ±0.12 / 17.91 ms │ no change │
│ QQuery 5  │ 40.28 / 40.87 ±0.49 / 41.43 ms │                     38.30 / 41.08 ±1.83 / 44.02 ms │ no change │
│ QQuery 6  │ 16.22 / 16.88 ±1.02 / 18.90 ms │                     16.67 / 17.56 ±0.81 / 18.70 ms │ no change │
│ QQuery 7  │ 43.85 / 46.20 ±1.59 / 48.28 ms │                     44.63 / 47.95 ±2.25 / 51.19 ms │ no change │
│ QQuery 8  │ 42.79 / 43.47 ±1.07 / 45.59 ms │                     42.92 / 43.12 ±0.13 / 43.28 ms │ no change │
│ QQuery 9  │ 50.22 / 51.42 ±0.91 / 52.55 ms │                     48.99 / 49.81 ±0.62 / 50.87 ms │ no change │
│ QQuery 10 │ 42.38 / 42.57 ±0.21 / 42.88 ms │                     42.58 / 42.71 ±0.11 / 42.87 ms │ no change │
│ QQuery 11 │ 13.66 / 13.84 ±0.14 / 14.01 ms │                     13.85 / 13.88 ±0.03 / 13.93 ms │ no change │
│ QQuery 12 │ 23.50 / 23.81 ±0.31 / 24.35 ms │                     23.74 / 24.19 ±0.37 / 24.84 ms │ no change │
│ QQuery 13 │ 32.84 / 33.94 ±1.01 / 35.76 ms │                     32.69 / 34.73 ±2.49 / 39.62 ms │ no change │
│ QQuery 14 │ 23.50 / 23.77 ±0.15 / 23.94 ms │                     23.75 / 24.05 ±0.21 / 24.34 ms │ no change │
│ QQuery 15 │ 31.62 / 32.13 ±0.47 / 32.93 ms │                     31.63 / 32.38 ±1.07 / 34.51 ms │ no change │
│ QQuery 16 │ 14.16 / 14.46 ±0.23 / 14.75 ms │                     14.38 / 14.40 ±0.02 / 14.44 ms │ no change │
│ QQuery 17 │ 72.36 / 74.13 ±1.64 / 77.15 ms │                     72.48 / 73.79 ±1.71 / 77.18 ms │ no change │
│ QQuery 18 │ 58.97 / 60.31 ±0.90 / 61.43 ms │                     60.12 / 62.27 ±2.92 / 68.03 ms │ no change │
│ QQuery 19 │ 33.20 / 33.88 ±1.24 / 36.36 ms │                     33.24 / 33.52 ±0.27 / 34.04 ms │ no change │
│ QQuery 20 │ 31.85 / 32.14 ±0.24 / 32.54 ms │                     32.11 / 32.48 ±0.23 / 32.77 ms │ no change │
│ QQuery 21 │ 55.78 / 57.73 ±1.36 / 59.62 ms │                     54.55 / 55.93 ±0.95 / 57.10 ms │ no change │
│ QQuery 22 │ 14.37 / 14.47 ±0.09 / 14.58 ms │                     14.33 / 14.68 ±0.35 / 15.22 ms │ no change │
└───────────┴────────────────────────────────┴────────────────────────────────────────────────────┴───────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary                                                 ┃          ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD)                                                 │ 765.83ms │
│ Total Time (feat_hash-join-dynamic-filter-with-range-partition)   │ 770.55ms │
│ Average Time (HEAD)                                               │  34.81ms │
│ Average Time (feat_hash-join-dynamic-filter-with-range-partition) │  35.03ms │
│ Queries Faster                                                    │        0 │
│ Queries Slower                                                    │        0 │
│ Queries with No Change                                            │       22 │
│ Queries with Failure                                              │        0 │
└───────────────────────────────────────────────────────────────────┴──────────┘

Resource Usage

tpch — base (merge-base)

Metric Value
Wall time 5.0s
Peak memory 1.2 GiB
Avg memory 520.3 MiB
CPU user 21.9s
CPU sys 1.7s
Peak spill 0 B

tpch — branch

Metric Value
Wall time 5.0s
Peak memory 1.2 GiB
Avg memory 518.6 MiB
CPU user 22.1s
CPU sys 1.9s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance: c4a-highmem-16 (12 vCPU / 65 GiB)

CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected
Details

Comparing HEAD and feat_hash-join-dynamic-filter-with-range-partition
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                                  HEAD ┃ feat_hash-join-dynamic-filter-with-range-partition ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │           5.51 / 6.07 ±0.94 / 7.94 ms │                        5.59 / 6.23 ±0.94 / 8.10 ms │     no change │
│ QQuery 2  │        81.14 / 81.78 ±0.37 / 82.29 ms │                     81.45 / 81.86 ±0.30 / 82.32 ms │     no change │
│ QQuery 3  │        29.93 / 30.19 ±0.25 / 30.61 ms │                     29.70 / 30.07 ±0.27 / 30.53 ms │     no change │
│ QQuery 4  │     487.82 / 494.20 ±3.66 / 497.93 ms │                  491.52 / 495.68 ±2.76 / 499.99 ms │     no change │
│ QQuery 5  │        52.47 / 53.07 ±0.43 / 53.75 ms │                     52.79 / 53.00 ±0.27 / 53.53 ms │     no change │
│ QQuery 6  │        37.07 / 37.24 ±0.13 / 37.46 ms │                     36.96 / 37.33 ±0.20 / 37.51 ms │     no change │
│ QQuery 7  │        95.31 / 96.11 ±0.59 / 96.87 ms │                     95.07 / 95.55 ±0.54 / 96.55 ms │     no change │
│ QQuery 8  │        37.00 / 38.79 ±2.17 / 43.05 ms │                     37.45 / 38.63 ±1.86 / 42.33 ms │     no change │
│ QQuery 9  │        52.41 / 55.49 ±2.51 / 59.65 ms │                     52.25 / 54.92 ±1.94 / 58.16 ms │     no change │
│ QQuery 10 │        64.08 / 64.84 ±0.48 / 65.43 ms │                     63.56 / 64.56 ±0.73 / 65.68 ms │     no change │
│ QQuery 11 │     294.55 / 307.07 ±7.93 / 319.34 ms │                  302.48 / 306.35 ±2.96 / 311.64 ms │     no change │
│ QQuery 12 │        29.04 / 29.41 ±0.41 / 30.18 ms │                     29.05 / 29.36 ±0.24 / 29.76 ms │     no change │
│ QQuery 13 │     119.53 / 120.63 ±0.69 / 121.60 ms │                  119.20 / 120.63 ±1.21 / 122.63 ms │     no change │
│ QQuery 14 │     414.23 / 419.75 ±3.73 / 424.75 ms │                  415.52 / 420.16 ±2.46 / 422.27 ms │     no change │
│ QQuery 15 │        57.52 / 58.28 ±0.59 / 59.21 ms │                     57.38 / 58.67 ±0.82 / 59.90 ms │     no change │
│ QQuery 16 │           6.67 / 6.86 ±0.30 / 7.45 ms │                        6.67 / 6.81 ±0.20 / 7.18 ms │     no change │
│ QQuery 17 │        80.18 / 82.54 ±3.89 / 90.29 ms │                     80.26 / 81.06 ±0.85 / 82.67 ms │     no change │
│ QQuery 18 │     123.57 / 125.96 ±1.44 / 127.67 ms │                  124.61 / 125.42 ±0.45 / 126.00 ms │     no change │
│ QQuery 19 │        42.59 / 43.03 ±0.46 / 43.60 ms │                     42.52 / 42.70 ±0.20 / 43.04 ms │     no change │
│ QQuery 20 │        37.01 / 38.31 ±2.34 / 42.98 ms │                     36.23 / 36.89 ±0.44 / 37.48 ms │     no change │
│ QQuery 21 │        17.94 / 18.30 ±0.41 / 19.11 ms │                     18.03 / 18.16 ±0.12 / 18.39 ms │     no change │
│ QQuery 22 │        62.83 / 64.03 ±0.76 / 64.73 ms │                     63.31 / 63.92 ±0.71 / 65.04 ms │     no change │
│ QQuery 23 │     347.67 / 350.13 ±2.50 / 354.81 ms │                  346.14 / 349.21 ±5.04 / 359.19 ms │     no change │
│ QQuery 24 │     224.32 / 229.41 ±5.12 / 238.43 ms │                  224.68 / 229.64 ±4.92 / 238.05 ms │     no change │
│ QQuery 25 │     111.20 / 112.16 ±1.18 / 114.44 ms │                  111.30 / 111.67 ±0.35 / 112.27 ms │     no change │
│ QQuery 26 │        58.63 / 61.03 ±2.54 / 65.84 ms │                     57.85 / 59.84 ±2.69 / 65.10 ms │     no change │
│ QQuery 27 │           6.23 / 6.34 ±0.16 / 6.67 ms │                        6.36 / 6.49 ±0.16 / 6.81 ms │     no change │
│ QQuery 28 │        59.62 / 61.68 ±1.06 / 62.66 ms │                     57.22 / 61.10 ±2.00 / 62.91 ms │     no change │
│ QQuery 29 │      97.96 / 102.05 ±6.53 / 115.08 ms │                   97.32 / 100.19 ±2.52 / 104.53 ms │     no change │
│ QQuery 30 │        32.73 / 34.75 ±2.19 / 38.94 ms │                     33.90 / 34.90 ±0.61 / 35.49 ms │     no change │
│ QQuery 31 │     113.41 / 114.42 ±1.23 / 116.80 ms │                  112.64 / 113.62 ±0.77 / 114.87 ms │     no change │
│ QQuery 32 │        20.95 / 21.24 ±0.19 / 21.44 ms │                     20.96 / 21.07 ±0.09 / 21.20 ms │     no change │
│ QQuery 33 │        38.52 / 40.80 ±4.09 / 48.96 ms │                     38.46 / 39.00 ±0.53 / 39.98 ms │     no change │
│ QQuery 34 │         9.95 / 10.86 ±0.89 / 12.33 ms │                      9.81 / 10.90 ±0.96 / 12.38 ms │     no change │
│ QQuery 35 │        73.43 / 73.97 ±0.30 / 74.22 ms │                     72.98 / 74.53 ±0.93 / 75.90 ms │     no change │
│ QQuery 36 │           5.82 / 5.93 ±0.17 / 6.26 ms │                        5.93 / 6.07 ±0.18 / 6.42 ms │     no change │
│ QQuery 37 │           6.80 / 6.89 ±0.08 / 7.00 ms │                        6.89 / 6.96 ±0.07 / 7.05 ms │     no change │
│ QQuery 38 │        62.82 / 63.45 ±0.53 / 64.32 ms │                     61.95 / 62.55 ±0.36 / 62.99 ms │     no change │
│ QQuery 39 │        90.76 / 92.75 ±3.00 / 98.67 ms │                    91.68 / 95.28 ±3.75 / 101.50 ms │     no change │
│ QQuery 40 │        23.05 / 23.64 ±0.37 / 24.16 ms │                     23.20 / 23.60 ±0.46 / 24.42 ms │     no change │
│ QQuery 41 │        11.58 / 11.82 ±0.22 / 12.14 ms │                     11.59 / 11.84 ±0.19 / 12.17 ms │     no change │
│ QQuery 42 │        24.24 / 24.68 ±0.33 / 25.06 ms │                     24.07 / 24.46 ±0.52 / 25.46 ms │     no change │
│ QQuery 43 │           4.97 / 5.12 ±0.14 / 5.38 ms │                        5.05 / 5.16 ±0.13 / 5.41 ms │     no change │
│ QQuery 44 │           9.22 / 9.39 ±0.14 / 9.62 ms │                        9.37 / 9.52 ±0.13 / 9.73 ms │     no change │
│ QQuery 45 │        38.10 / 38.76 ±0.90 / 40.44 ms │                     39.05 / 39.30 ±0.28 / 39.76 ms │     no change │
│ QQuery 46 │        12.07 / 13.61 ±2.60 / 18.80 ms │                     11.91 / 12.27 ±0.39 / 12.96 ms │ +1.11x faster │
│ QQuery 47 │     230.01 / 233.90 ±3.72 / 240.16 ms │                  228.41 / 232.50 ±3.92 / 239.84 ms │     no change │
│ QQuery 48 │        96.51 / 97.31 ±0.80 / 98.73 ms │                     96.70 / 97.15 ±0.28 / 97.48 ms │     no change │
│ QQuery 49 │        77.19 / 79.61 ±3.52 / 86.53 ms │                     77.69 / 78.14 ±0.44 / 78.97 ms │     no change │
│ QQuery 50 │        60.19 / 61.29 ±0.89 / 62.88 ms │                     60.59 / 62.73 ±3.26 / 69.12 ms │     no change │
│ QQuery 51 │        93.41 / 94.66 ±0.78 / 95.81 ms │                     92.50 / 94.44 ±1.44 / 96.22 ms │     no change │
│ QQuery 52 │        24.43 / 26.32 ±2.94 / 32.18 ms │                     24.66 / 24.88 ±0.22 / 25.29 ms │ +1.06x faster │
│ QQuery 53 │        30.20 / 30.67 ±0.35 / 31.07 ms │                     30.24 / 32.37 ±3.33 / 38.99 ms │  1.06x slower │
│ QQuery 54 │        56.81 / 57.76 ±1.00 / 59.67 ms │                     56.15 / 57.12 ±1.02 / 59.07 ms │     no change │
│ QQuery 55 │        23.76 / 24.49 ±0.43 / 25.05 ms │                     23.68 / 24.04 ±0.42 / 24.85 ms │     no change │
│ QQuery 56 │        39.30 / 40.20 ±0.52 / 40.78 ms │                     39.23 / 40.23 ±0.54 / 40.80 ms │     no change │
│ QQuery 57 │     178.03 / 180.58 ±2.37 / 184.78 ms │                  179.53 / 180.85 ±0.94 / 182.21 ms │     no change │
│ QQuery 58 │     116.17 / 118.98 ±3.63 / 125.73 ms │                  117.10 / 119.00 ±1.10 / 120.28 ms │     no change │
│ QQuery 59 │     118.94 / 119.30 ±0.38 / 119.93 ms │                  118.85 / 119.70 ±0.75 / 121.02 ms │     no change │
│ QQuery 60 │        39.66 / 41.27 ±2.77 / 46.80 ms │                     39.91 / 40.36 ±0.38 / 41.01 ms │     no change │
│ QQuery 61 │        12.28 / 12.45 ±0.22 / 12.88 ms │                     12.49 / 12.72 ±0.17 / 13.00 ms │     no change │
│ QQuery 62 │        46.82 / 47.93 ±1.26 / 50.23 ms │                     47.53 / 49.36 ±2.11 / 52.88 ms │     no change │
│ QQuery 63 │        30.25 / 30.41 ±0.17 / 30.73 ms │                     30.34 / 31.19 ±0.49 / 31.67 ms │     no change │
│ QQuery 64 │     412.19 / 417.20 ±2.60 / 419.50 ms │                  409.35 / 416.20 ±3.76 / 420.77 ms │     no change │
│ QQuery 65 │     126.19 / 130.51 ±2.71 / 134.24 ms │                  126.67 / 129.43 ±2.10 / 132.27 ms │     no change │
│ QQuery 66 │        81.34 / 82.35 ±0.89 / 83.81 ms │                     82.08 / 83.03 ±0.98 / 84.55 ms │     no change │
│ QQuery 67 │     243.84 / 246.56 ±2.28 / 250.06 ms │                  242.08 / 248.06 ±6.49 / 260.27 ms │     no change │
│ QQuery 68 │        12.21 / 12.37 ±0.13 / 12.58 ms │                     12.07 / 12.23 ±0.14 / 12.43 ms │     no change │
│ QQuery 69 │        59.01 / 60.94 ±2.77 / 66.40 ms │                     58.68 / 61.14 ±2.90 / 64.70 ms │     no change │
│ QQuery 70 │     107.36 / 111.02 ±3.14 / 115.21 ms │                  107.33 / 110.29 ±3.10 / 116.30 ms │     no change │
│ QQuery 71 │        36.28 / 36.53 ±0.20 / 36.87 ms │                     36.28 / 36.55 ±0.32 / 37.14 ms │     no change │
│ QQuery 72 │ 2160.55 / 2203.03 ±42.09 / 2276.14 ms │              2134.71 / 2180.06 ±47.66 / 2254.03 ms │     no change │
│ QQuery 73 │         9.67 / 12.05 ±3.50 / 18.95 ms │                      9.75 / 10.03 ±0.23 / 10.36 ms │ +1.20x faster │
│ QQuery 74 │     171.62 / 175.99 ±3.63 / 182.61 ms │                  173.36 / 178.96 ±5.71 / 189.11 ms │     no change │
│ QQuery 75 │     148.75 / 151.01 ±1.31 / 152.35 ms │                  150.40 / 155.22 ±7.47 / 170.08 ms │     no change │
│ QQuery 76 │        35.97 / 36.20 ±0.18 / 36.52 ms │                     35.74 / 36.14 ±0.68 / 37.50 ms │     no change │
│ QQuery 77 │        62.26 / 64.29 ±2.80 / 69.84 ms │                     62.12 / 62.86 ±0.58 / 63.49 ms │     no change │
│ QQuery 78 │     199.89 / 202.38 ±1.72 / 204.26 ms │                  196.43 / 201.57 ±5.31 / 211.37 ms │     no change │
│ QQuery 79 │        68.13 / 69.96 ±2.94 / 75.81 ms │                     69.17 / 72.64 ±2.41 / 74.79 ms │     no change │
│ QQuery 80 │     100.26 / 102.87 ±2.44 / 107.10 ms │                  100.42 / 101.95 ±1.34 / 104.45 ms │     no change │
│ QQuery 81 │        26.33 / 26.74 ±0.27 / 27.06 ms │                     26.35 / 26.55 ±0.16 / 26.75 ms │     no change │
│ QQuery 82 │        16.95 / 17.76 ±0.63 / 18.79 ms │                     16.72 / 17.79 ±1.70 / 21.18 ms │     no change │
│ QQuery 83 │        41.05 / 41.34 ±0.27 / 41.76 ms │                     40.56 / 42.19 ±1.64 / 45.24 ms │     no change │
│ QQuery 84 │        30.27 / 31.02 ±0.74 / 32.30 ms │                     30.27 / 31.96 ±2.18 / 36.22 ms │     no change │
│ QQuery 85 │     107.70 / 110.23 ±2.66 / 115.18 ms │                  106.66 / 107.44 ±0.63 / 108.38 ms │     no change │
│ QQuery 86 │        25.96 / 26.73 ±0.90 / 28.43 ms │                     25.61 / 28.03 ±1.79 / 30.65 ms │     no change │
│ QQuery 87 │        63.13 / 64.81 ±1.53 / 67.60 ms │                     63.52 / 64.94 ±1.94 / 68.68 ms │     no change │
│ QQuery 88 │        64.07 / 64.76 ±0.52 / 65.56 ms │                     64.72 / 65.10 ±0.26 / 65.40 ms │     no change │
│ QQuery 89 │        37.04 / 38.31 ±1.92 / 42.14 ms │                     36.73 / 37.23 ±0.42 / 37.84 ms │     no change │
│ QQuery 90 │        17.24 / 17.91 ±0.85 / 19.48 ms │                     17.45 / 17.63 ±0.10 / 17.75 ms │     no change │
│ QQuery 91 │        46.22 / 46.49 ±0.19 / 46.76 ms │                     46.49 / 48.18 ±1.99 / 51.96 ms │     no change │
│ QQuery 92 │        29.79 / 30.30 ±0.51 / 31.08 ms │                     30.70 / 31.84 ±1.21 / 33.42 ms │  1.05x slower │
│ QQuery 93 │        50.10 / 51.27 ±0.95 / 52.68 ms │                     50.25 / 51.15 ±0.58 / 52.08 ms │     no change │
│ QQuery 94 │        38.58 / 39.83 ±1.53 / 42.78 ms │                     38.55 / 39.13 ±0.59 / 40.15 ms │     no change │
│ QQuery 95 │        81.37 / 82.63 ±1.01 / 84.17 ms │                     81.28 / 83.02 ±1.48 / 85.19 ms │     no change │
│ QQuery 96 │        24.44 / 24.81 ±0.25 / 25.10 ms │                     24.43 / 24.63 ±0.22 / 25.05 ms │     no change │
│ QQuery 97 │        47.02 / 47.75 ±0.55 / 48.37 ms │                     46.78 / 47.41 ±0.81 / 48.95 ms │     no change │
│ QQuery 98 │        43.03 / 44.77 ±2.59 / 49.87 ms │                     43.25 / 44.17 ±0.66 / 45.10 ms │     no change │
│ QQuery 99 │        71.40 / 72.09 ±0.84 / 73.65 ms │                     71.37 / 71.98 ±0.77 / 73.38 ms │     no change │
└───────────┴───────────────────────────────────────┴────────────────────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary                                                 ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)                                                 │ 10078.79ms │
│ Total Time (feat_hash-join-dynamic-filter-with-range-partition)   │ 10050.64ms │
│ Average Time (HEAD)                                               │   101.81ms │
│ Average Time (feat_hash-join-dynamic-filter-with-range-partition) │   101.52ms │
│ Queries Faster                                                    │          3 │
│ Queries Slower                                                    │          2 │
│ Queries with No Change                                            │         94 │
│ Queries with Failure                                              │          0 │
└───────────────────────────────────────────────────────────────────┴────────────┘

Resource Usage

tpcds — base (merge-base)

Metric Value
Wall time 55.0s
Peak memory 2.3 GiB
Avg memory 1.5 GiB
CPU user 228.2s
CPU sys 6.3s
Peak spill 0 B

tpcds — branch

Metric Value
Wall time 55.0s
Peak memory 2.3 GiB
Avg memory 1.5 GiB
CPU user 226.9s
CPU sys 6.1s
Peak spill 0 B

File an issue against this benchmark runner

@peterxcli

Copy link
Copy Markdown
Member Author

run benchmark tpch tpcds

@comphead We’d need to enable range partitioning on the join inputs for the effect to show up.

@getChan getChan left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

make sense to me!
If it's not too much trouble, could you share some performance comparison benchmark results?

@peterxcli

Copy link
Copy Markdown
Member Author

make sense to me! If it's not too much trouble, could you share some performance comparison benchmark results?

this still need some additional plumbing to really work, but let me try to do that and run some benchmark

@gene-bordegaray

Copy link
Copy Markdown
Contributor

I believe there is much discussion going on around the future of dynamic filters here #23814 . I am unable to give PRs full attention this week but think syncing with @jayshrivastava will be very useful

@peterxcli
peterxcli force-pushed the feat/hash-join-dynamic-filter-with-range-partition branch from 9056b30 to bf4e6a1 Compare July 31, 2026 04:29
@adriangbot

Copy link
Copy Markdown

@adriangb

Copy link
Copy Markdown
Contributor

run benchmark tpch tpcds

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5139346178-1322-flkmd 6.12.85+ #1 SMP Mon May 11 08:17:35 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected

Comparing feat/hash-join-dynamic-filter-with-range-partition (7d2589f) to 39d5064 (merge-base) diff

Run configuration
run benchmark tpch

Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5139346178-1323-7kkcj 6.12.85+ #1 SMP Mon May 11 08:17:35 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected

Comparing feat/hash-join-dynamic-filter-with-range-partition (7d2589f) to 39d5064 (merge-base) diff

Run configuration
run benchmark tpcds

Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance: c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing feat/hash-join-dynamic-filter-with-range-partition (7d2589f) to 39d5064 (merge-base) diff

Run configuration
run benchmark tpch
CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected
Details

Comparing HEAD and feat_hash-join-dynamic-filter-with-range-partition
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Query     ┃                           HEAD ┃ feat_hash-join-dynamic-filter-with-range-partition ┃    Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ QQuery 1  │ 38.07 / 38.79 ±1.10 / 40.98 ms │                     38.08 / 39.24 ±1.24 / 40.89 ms │ no change │
│ QQuery 2  │ 19.03 / 19.72 ±0.93 / 21.52 ms │                     19.01 / 19.96 ±1.10 / 21.68 ms │ no change │
│ QQuery 3  │ 30.56 / 32.27 ±1.35 / 33.91 ms │                     30.97 / 32.95 ±1.77 / 35.72 ms │ no change │
│ QQuery 4  │ 17.44 / 18.20 ±1.20 / 20.58 ms │                     17.31 / 17.49 ±0.12 / 17.67 ms │ no change │
│ QQuery 5  │ 37.06 / 39.71 ±2.52 / 44.01 ms │                     37.58 / 40.04 ±1.60 / 42.52 ms │ no change │
│ QQuery 6  │ 16.12 / 16.87 ±1.02 / 18.88 ms │                     16.14 / 16.27 ±0.10 / 16.46 ms │ no change │
│ QQuery 7  │ 43.53 / 45.16 ±1.03 / 46.38 ms │                     42.33 / 44.22 ±1.74 / 47.35 ms │ no change │
│ QQuery 8  │ 42.39 / 43.30 ±0.69 / 44.30 ms │                     42.35 / 42.48 ±0.15 / 42.71 ms │ no change │
│ QQuery 9  │ 48.22 / 49.61 ±1.05 / 50.96 ms │                     48.96 / 49.82 ±1.37 / 52.55 ms │ no change │
│ QQuery 10 │ 41.84 / 42.41 ±0.46 / 43.05 ms │                     42.05 / 42.57 ±0.52 / 43.48 ms │ no change │
│ QQuery 11 │ 13.17 / 13.34 ±0.10 / 13.48 ms │                     13.13 / 13.25 ±0.10 / 13.38 ms │ no change │
│ QQuery 12 │ 23.55 / 24.24 ±0.41 / 24.65 ms │                     24.70 / 25.08 ±0.31 / 25.55 ms │ no change │
│ QQuery 13 │ 31.55 / 33.39 ±1.45 / 35.85 ms │                     32.46 / 33.69 ±1.21 / 35.72 ms │ no change │
│ QQuery 14 │ 23.24 / 23.40 ±0.14 / 23.62 ms │                     23.37 / 24.03 ±0.99 / 25.99 ms │ no change │
│ QQuery 15 │ 31.31 / 32.04 ±0.67 / 33.24 ms │                     30.68 / 31.26 ±0.62 / 32.38 ms │ no change │
│ QQuery 16 │ 13.77 / 14.01 ±0.24 / 14.33 ms │                     13.59 / 13.88 ±0.17 / 14.07 ms │ no change │
│ QQuery 17 │ 69.84 / 70.44 ±0.69 / 71.31 ms │                     69.23 / 70.88 ±1.59 / 73.60 ms │ no change │
│ QQuery 18 │ 57.49 / 58.81 ±1.05 / 60.61 ms │                     58.12 / 58.89 ±0.75 / 60.22 ms │ no change │
│ QQuery 19 │ 32.93 / 33.18 ±0.18 / 33.44 ms │                     33.00 / 33.59 ±0.49 / 34.20 ms │ no change │
│ QQuery 20 │ 31.39 / 32.08 ±0.79 / 33.55 ms │                     31.32 / 31.55 ±0.16 / 31.76 ms │ no change │
│ QQuery 21 │ 55.28 / 56.88 ±0.82 / 57.57 ms │                     53.58 / 54.70 ±1.00 / 56.58 ms │ no change │
│ QQuery 22 │ 13.81 / 13.91 ±0.08 / 14.04 ms │                     13.53 / 13.86 ±0.24 / 14.19 ms │ no change │
└───────────┴────────────────────────────────┴────────────────────────────────────────────────────┴───────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary                                                 ┃          ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD)                                                 │ 751.78ms │
│ Total Time (feat_hash-join-dynamic-filter-with-range-partition)   │ 749.68ms │
│ Average Time (HEAD)                                               │  34.17ms │
│ Average Time (feat_hash-join-dynamic-filter-with-range-partition) │  34.08ms │
│ Queries Faster                                                    │        0 │
│ Queries Slower                                                    │        0 │
│ Queries with No Change                                            │       22 │
│ Queries with Failure                                              │        0 │
└───────────────────────────────────────────────────────────────────┴──────────┘

Resource Usage

tpch — base (merge-base)

Metric Value
Wall time 5.0s
Peak memory 1.3 GiB
Avg memory 532.6 MiB
CPU user 21.4s
CPU sys 1.7s
Peak spill 0 B

tpch — branch

Metric Value
Wall time 5.0s
Peak memory 1.2 GiB
Avg memory 523.2 MiB
CPU user 21.4s
CPU sys 1.6s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance: c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing feat/hash-join-dynamic-filter-with-range-partition (7d2589f) to 39d5064 (merge-base) diff

Run configuration
run benchmark tpcds
CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected
Details

Comparing HEAD and feat_hash-join-dynamic-filter-with-range-partition
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                                  HEAD ┃ feat_hash-join-dynamic-filter-with-range-partition ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │           5.38 / 5.88 ±0.86 / 7.60 ms │                        5.92 / 6.39 ±0.86 / 8.11 ms │  1.09x slower │
│ QQuery 2  │        79.78 / 80.10 ±0.36 / 80.77 ms │                     82.53 / 83.15 ±0.45 / 83.65 ms │     no change │
│ QQuery 3  │        29.22 / 29.53 ±0.25 / 29.87 ms │                     31.16 / 31.55 ±0.27 / 31.90 ms │  1.07x slower │
│ QQuery 4  │    481.19 / 493.04 ±21.90 / 536.81 ms │                 491.54 / 564.52 ±38.17 / 594.01 ms │  1.14x slower │
│ QQuery 5  │        53.57 / 54.03 ±0.45 / 54.87 ms │                     51.49 / 52.97 ±0.83 / 53.84 ms │     no change │
│ QQuery 6  │        38.70 / 38.98 ±0.24 / 39.34 ms │                     37.96 / 38.34 ±0.33 / 38.95 ms │     no change │
│ QQuery 7  │        94.83 / 95.96 ±1.02 / 97.19 ms │                    96.18 / 98.75 ±3.37 / 105.31 ms │     no change │
│ QQuery 8  │        36.88 / 38.78 ±2.62 / 43.89 ms │                     36.70 / 36.79 ±0.07 / 36.87 ms │ +1.05x faster │
│ QQuery 9  │        51.69 / 53.13 ±1.03 / 54.66 ms │                     51.68 / 53.02 ±1.35 / 54.69 ms │     no change │
│ QQuery 10 │        63.57 / 64.24 ±0.58 / 65.29 ms │                     63.36 / 65.14 ±1.76 / 68.46 ms │     no change │
│ QQuery 11 │     307.55 / 316.53 ±6.24 / 325.29 ms │                  294.63 / 301.96 ±4.76 / 308.64 ms │     no change │
│ QQuery 12 │        29.02 / 29.26 ±0.25 / 29.63 ms │                     28.91 / 29.21 ±0.17 / 29.35 ms │     no change │
│ QQuery 13 │     119.19 / 122.95 ±2.39 / 125.18 ms │                  119.91 / 121.73 ±1.10 / 123.04 ms │     no change │
│ QQuery 14 │     418.92 / 430.15 ±6.32 / 436.57 ms │                  414.92 / 420.05 ±3.62 / 425.08 ms │     no change │
│ QQuery 15 │        57.58 / 60.89 ±3.34 / 65.12 ms │                     57.91 / 60.44 ±3.11 / 66.40 ms │     no change │
│ QQuery 16 │           6.56 / 6.74 ±0.21 / 7.13 ms │                        6.65 / 6.89 ±0.20 / 7.25 ms │     no change │
│ QQuery 17 │        79.57 / 80.62 ±1.31 / 83.20 ms │                     81.56 / 83.85 ±2.94 / 89.02 ms │     no change │
│ QQuery 18 │     121.98 / 123.30 ±0.80 / 124.15 ms │                  124.61 / 126.63 ±1.30 / 128.31 ms │     no change │
│ QQuery 19 │        41.97 / 42.11 ±0.14 / 42.34 ms │                     42.34 / 42.55 ±0.28 / 43.11 ms │     no change │
│ QQuery 20 │        35.96 / 36.68 ±0.48 / 37.26 ms │                     35.68 / 37.54 ±1.72 / 40.50 ms │     no change │
│ QQuery 21 │        17.63 / 18.04 ±0.63 / 19.30 ms │                     17.71 / 18.04 ±0.48 / 18.98 ms │     no change │
│ QQuery 22 │        61.96 / 63.00 ±0.85 / 63.96 ms │                     62.80 / 63.93 ±0.78 / 64.90 ms │     no change │
│ QQuery 23 │     342.09 / 345.28 ±2.97 / 350.16 ms │                 352.02 / 397.48 ±23.79 / 417.98 ms │  1.15x slower │
│ QQuery 24 │     223.75 / 227.15 ±3.27 / 233.06 ms │                  229.48 / 235.84 ±6.05 / 246.31 ms │     no change │
│ QQuery 25 │     109.44 / 110.54 ±0.67 / 111.27 ms │                  112.51 / 116.51 ±6.71 / 129.88 ms │  1.05x slower │
│ QQuery 26 │        57.53 / 59.51 ±2.10 / 63.50 ms │                     59.29 / 59.52 ±0.18 / 59.71 ms │     no change │
│ QQuery 27 │           6.15 / 6.24 ±0.15 / 6.54 ms │                        6.10 / 6.27 ±0.18 / 6.60 ms │     no change │
│ QQuery 28 │        60.83 / 61.89 ±0.84 / 63.18 ms │                     57.85 / 60.92 ±1.62 / 62.61 ms │     no change │
│ QQuery 29 │       96.75 / 99.10 ±3.27 / 105.52 ms │                    98.25 / 99.24 ±0.72 / 100.29 ms │     no change │
│ QQuery 30 │        32.49 / 32.93 ±0.33 / 33.40 ms │                     32.49 / 32.72 ±0.13 / 32.88 ms │     no change │
│ QQuery 31 │     110.95 / 111.44 ±0.40 / 111.97 ms │                  111.52 / 113.69 ±2.70 / 119.01 ms │     no change │
│ QQuery 32 │        19.99 / 20.44 ±0.33 / 20.84 ms │                     20.35 / 20.65 ±0.27 / 21.14 ms │     no change │
│ QQuery 33 │        37.28 / 38.74 ±1.94 / 42.51 ms │                     37.22 / 37.79 ±0.33 / 38.05 ms │     no change │
│ QQuery 34 │          9.61 / 9.92 ±0.54 / 11.00 ms │                      9.68 / 10.16 ±0.47 / 11.00 ms │     no change │
│ QQuery 35 │        72.24 / 72.98 ±0.51 / 73.51 ms │                     73.00 / 73.34 ±0.26 / 73.66 ms │     no change │
│ QQuery 36 │           5.62 / 5.76 ±0.18 / 6.11 ms │                        5.74 / 6.04 ±0.41 / 6.85 ms │     no change │
│ QQuery 37 │           6.68 / 6.81 ±0.09 / 6.94 ms │                        6.76 / 6.84 ±0.07 / 6.93 ms │     no change │
│ QQuery 38 │        61.40 / 61.64 ±0.34 / 62.30 ms │                     61.74 / 63.25 ±2.30 / 67.80 ms │     no change │
│ QQuery 39 │        89.05 / 91.95 ±3.90 / 99.68 ms │                     90.39 / 90.70 ±0.32 / 91.30 ms │     no change │
│ QQuery 40 │        23.02 / 23.34 ±0.25 / 23.74 ms │                     23.33 / 23.45 ±0.14 / 23.72 ms │     no change │
│ QQuery 41 │        11.39 / 11.59 ±0.18 / 11.81 ms │                     11.45 / 11.69 ±0.27 / 12.03 ms │     no change │
│ QQuery 42 │        23.79 / 24.09 ±0.26 / 24.43 ms │                     24.05 / 24.25 ±0.23 / 24.68 ms │     no change │
│ QQuery 43 │           4.89 / 4.98 ±0.11 / 5.18 ms │                        4.94 / 5.07 ±0.15 / 5.37 ms │     no change │
│ QQuery 44 │           9.05 / 9.16 ±0.09 / 9.31 ms │                        9.19 / 9.26 ±0.05 / 9.32 ms │     no change │
│ QQuery 45 │        37.25 / 37.90 ±0.42 / 38.46 ms │                     38.58 / 41.05 ±3.35 / 47.68 ms │  1.08x slower │
│ QQuery 46 │        11.56 / 11.74 ±0.15 / 11.96 ms │                     11.94 / 12.47 ±0.35 / 12.97 ms │  1.06x slower │
│ QQuery 47 │    227.17 / 260.87 ±26.58 / 293.14 ms │                  233.58 / 239.63 ±4.85 / 247.82 ms │ +1.09x faster │
│ QQuery 48 │     103.27 / 103.60 ±0.41 / 104.39 ms │                   97.20 / 102.77 ±5.77 / 110.74 ms │     no change │
│ QQuery 49 │        77.40 / 82.08 ±4.57 / 90.45 ms │                     76.36 / 78.10 ±2.13 / 82.21 ms │     no change │
│ QQuery 50 │        59.41 / 60.71 ±1.24 / 62.93 ms │                     59.41 / 60.03 ±0.41 / 60.54 ms │     no change │
│ QQuery 51 │        92.12 / 93.14 ±0.87 / 94.24 ms │                     90.43 / 93.94 ±3.16 / 99.46 ms │     no change │
│ QQuery 52 │        24.36 / 26.88 ±3.70 / 34.22 ms │                     24.04 / 24.45 ±0.36 / 24.87 ms │ +1.10x faster │
│ QQuery 53 │        29.03 / 29.84 ±0.61 / 30.88 ms │                     29.40 / 29.65 ±0.19 / 29.88 ms │     no change │
│ QQuery 54 │        55.27 / 55.47 ±0.27 / 56.00 ms │                     55.10 / 58.69 ±2.03 / 60.45 ms │  1.06x slower │
│ QQuery 55 │        23.18 / 23.61 ±0.27 / 24.00 ms │                     25.73 / 26.65 ±0.61 / 27.40 ms │  1.13x slower │
│ QQuery 56 │        39.27 / 39.52 ±0.25 / 39.84 ms │                     39.34 / 42.11 ±2.39 / 45.17 ms │  1.07x slower │
│ QQuery 57 │     174.72 / 176.81 ±2.38 / 181.47 ms │                  176.86 / 178.48 ±1.60 / 181.41 ms │     no change │
│ QQuery 58 │     114.44 / 115.13 ±0.74 / 116.53 ms │                  114.53 / 115.93 ±1.04 / 117.63 ms │     no change │
│ QQuery 59 │     117.52 / 117.90 ±0.33 / 118.47 ms │                  117.56 / 122.98 ±4.58 / 130.58 ms │     no change │
│ QQuery 60 │        39.43 / 41.49 ±3.00 / 47.44 ms │                     43.63 / 44.44 ±0.67 / 45.40 ms │  1.07x slower │
│ QQuery 61 │        12.04 / 12.23 ±0.26 / 12.75 ms │                     13.80 / 13.96 ±0.16 / 14.20 ms │  1.14x slower │
│ QQuery 62 │        46.82 / 47.96 ±0.63 / 48.63 ms │                     51.55 / 51.75 ±0.20 / 52.08 ms │  1.08x slower │
│ QQuery 63 │        29.79 / 30.34 ±0.41 / 30.98 ms │                     31.65 / 32.30 ±0.59 / 33.37 ms │  1.06x slower │
│ QQuery 64 │     407.57 / 411.31 ±2.88 / 415.60 ms │                 411.20 / 424.13 ±16.68 / 455.17 ms │     no change │
│ QQuery 65 │     123.57 / 126.90 ±2.85 / 131.92 ms │                  124.61 / 127.69 ±2.78 / 131.41 ms │     no change │
│ QQuery 66 │        83.11 / 83.99 ±0.46 / 84.42 ms │                     80.26 / 81.42 ±0.67 / 81.94 ms │     no change │
│ QQuery 67 │    252.84 / 282.38 ±14.84 / 292.26 ms │                  241.95 / 248.86 ±7.01 / 261.57 ms │ +1.13x faster │
│ QQuery 68 │        12.35 / 15.20 ±4.67 / 24.53 ms │                     11.87 / 12.11 ±0.22 / 12.48 ms │ +1.26x faster │
│ QQuery 69 │        57.52 / 58.25 ±0.73 / 59.60 ms │                     58.10 / 58.74 ±0.49 / 59.40 ms │     no change │
│ QQuery 70 │     105.95 / 110.45 ±3.39 / 116.29 ms │                  105.38 / 110.96 ±6.41 / 123.22 ms │     no change │
│ QQuery 71 │        35.11 / 37.43 ±3.71 / 44.82 ms │                     35.57 / 36.30 ±0.53 / 37.03 ms │     no change │
│ QQuery 72 │ 2143.75 / 2248.95 ±90.11 / 2369.17 ms │             2116.87 / 2271.38 ±122.23 / 2492.57 ms │     no change │
│ QQuery 73 │          9.52 / 9.73 ±0.27 / 10.25 ms │                     10.25 / 10.42 ±0.16 / 10.62 ms │  1.07x slower │
│ QQuery 74 │     168.56 / 170.60 ±1.38 / 172.53 ms │                  171.91 / 176.06 ±3.63 / 181.81 ms │     no change │
│ QQuery 75 │     148.84 / 150.43 ±1.76 / 153.20 ms │                  150.01 / 153.82 ±4.27 / 162.09 ms │     no change │
│ QQuery 76 │        35.61 / 36.92 ±1.28 / 39.23 ms │                     35.46 / 36.14 ±0.83 / 37.77 ms │     no change │
│ QQuery 77 │        60.76 / 61.56 ±0.65 / 62.62 ms │                     61.31 / 62.47 ±1.60 / 65.54 ms │     no change │
│ QQuery 78 │     196.76 / 199.65 ±2.27 / 203.40 ms │                  200.18 / 202.63 ±2.20 / 206.49 ms │     no change │
│ QQuery 79 │        67.16 / 67.54 ±0.41 / 68.28 ms │                     67.62 / 68.97 ±1.04 / 70.58 ms │     no change │
│ QQuery 80 │      99.89 / 101.70 ±2.03 / 104.50 ms │                   99.96 / 101.59 ±1.24 / 103.21 ms │     no change │
│ QQuery 81 │        25.53 / 25.79 ±0.29 / 26.32 ms │                     26.08 / 27.24 ±1.30 / 29.76 ms │  1.06x slower │
│ QQuery 82 │        16.18 / 16.48 ±0.35 / 17.16 ms │                     16.99 / 17.20 ±0.16 / 17.47 ms │     no change │
│ QQuery 83 │        39.39 / 40.75 ±2.60 / 45.95 ms │                     40.00 / 43.37 ±5.02 / 53.31 ms │  1.06x slower │
│ QQuery 84 │        29.88 / 30.03 ±0.09 / 30.12 ms │                     30.84 / 31.53 ±0.47 / 32.27 ms │     no change │
│ QQuery 85 │     104.95 / 107.43 ±1.89 / 109.84 ms │                  107.78 / 108.71 ±0.78 / 110.11 ms │     no change │
│ QQuery 86 │        24.63 / 25.13 ±0.35 / 25.66 ms │                     25.65 / 25.93 ±0.26 / 26.32 ms │     no change │
│ QQuery 87 │        61.17 / 61.57 ±0.50 / 62.53 ms │                     62.37 / 64.87 ±3.65 / 71.94 ms │  1.05x slower │
│ QQuery 88 │        62.50 / 64.74 ±3.74 / 72.19 ms │                     63.53 / 63.80 ±0.24 / 64.21 ms │     no change │
│ QQuery 89 │        35.71 / 36.28 ±0.40 / 36.96 ms │                     36.25 / 36.86 ±0.48 / 37.61 ms │     no change │
│ QQuery 90 │        16.71 / 16.90 ±0.18 / 17.22 ms │                     17.12 / 17.35 ±0.15 / 17.59 ms │     no change │
│ QQuery 91 │        45.67 / 46.05 ±0.37 / 46.73 ms │                     47.10 / 48.54 ±1.99 / 52.46 ms │  1.05x slower │
│ QQuery 92 │        28.86 / 29.54 ±0.55 / 30.20 ms │                     30.20 / 31.00 ±0.71 / 32.26 ms │     no change │
│ QQuery 93 │        50.07 / 51.31 ±1.20 / 53.36 ms │                     50.04 / 51.71 ±0.91 / 52.71 ms │     no change │
│ QQuery 94 │        38.63 / 39.73 ±0.97 / 41.23 ms │                     38.55 / 38.94 ±0.24 / 39.22 ms │     no change │
│ QQuery 95 │        80.11 / 81.24 ±0.71 / 82.05 ms │                     81.25 / 83.45 ±2.51 / 88.17 ms │     no change │
│ QQuery 96 │        24.02 / 24.23 ±0.32 / 24.88 ms │                     24.48 / 24.76 ±0.19 / 25.02 ms │     no change │
│ QQuery 97 │        46.67 / 48.00 ±1.91 / 51.81 ms │                     47.02 / 47.81 ±0.67 / 49.03 ms │     no change │
│ QQuery 98 │        42.44 / 43.33 ±0.50 / 43.93 ms │                     43.43 / 44.26 ±0.55 / 44.79 ms │     no change │
│ QQuery 99 │        71.64 / 73.30 ±1.00 / 74.61 ms │                     71.34 / 73.22 ±3.03 / 79.24 ms │     no change │
└───────────┴───────────────────────────────────────┴────────────────────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary                                                 ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)                                                 │ 10121.45ms │
│ Total Time (feat_hash-join-dynamic-filter-with-range-partition)   │ 10281.75ms │
│ Average Time (HEAD)                                               │   102.24ms │
│ Average Time (feat_hash-join-dynamic-filter-with-range-partition) │   103.86ms │
│ Queries Faster                                                    │          5 │
│ Queries Slower                                                    │         19 │
│ Queries with No Change                                            │         75 │
│ Queries with Failure                                              │          0 │
└───────────────────────────────────────────────────────────────────┴────────────┘

Resource Usage

tpcds — base (merge-base)

Metric Value
Wall time 55.0s
Peak memory 2.2 GiB
Avg memory 1.5 GiB
CPU user 225.3s
CPU sys 6.2s
Peak spill 0 B

tpcds — branch

Metric Value
Wall time 55.0s
Peak memory 2.2 GiB
Avg memory 1.5 GiB
CPU user 227.3s
CPU sys 6.4s
Peak spill 0 B

File an issue against this benchmark runner

@alamb

alamb commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

run benchmarks

@alamb

alamb commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

run benchmark tpch tpcds

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5253285042-1542-nflvw 6.12.85+ #1 SMP Wed Jun 17 20:31:55 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected

Comparing feat/hash-join-dynamic-filter-with-range-partition (7274de3) to a05388e (merge-base) diff

Run configuration
run benchmark tpcds

Results will be posted here when complete


File an issue against this benchmark runner

@alamb alamb left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for all the work @peterxcli @gene-bordegaray @getChan @jayshrivastava and @saadtajwar -- this is a pretty sweet team effort

I took brief pass through it and it looks great to me. I kicked off some benchmarks just to make sure it doesn't accidentally regress performance and assuming they look good I'll merge it in

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5253285042-1543-x72lv 6.12.85+ #1 SMP Wed Jun 17 20:31:55 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected

Comparing feat/hash-join-dynamic-filter-with-range-partition (7274de3) to a05388e (merge-base) diff

Run configuration
run benchmark tpch

Results will be posted here when complete


File an issue against this benchmark runner

@alamb

alamb commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

FYI @adriangb in case you want to review this too

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5253287820-1545-cxf25 6.12.85+ #1 SMP Wed Jun 17 20:31:55 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected

Comparing feat/hash-join-dynamic-filter-with-range-partition (7274de3) to a05388e (merge-base) diff

Run configuration
run benchmark tpcds

Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5253285042-1541-8f7l6 6.12.85+ #1 SMP Wed Jun 17 20:31:55 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected

Comparing feat/hash-join-dynamic-filter-with-range-partition (7274de3) to a05388e (merge-base) diff

Run configuration
run benchmark clickbench_partitioned

Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5253287820-1544-p2d6h 6.12.85+ #1 SMP Wed Jun 17 20:31:55 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected

Comparing feat/hash-join-dynamic-filter-with-range-partition (7274de3) to a05388e (merge-base) diff

Run configuration
run benchmark tpch

Results will be posted here when complete


File an issue against this benchmark runner


let filter_expr = if has_canceled_unknown {
let mut when_then_branches = empty_partition_ids
let filter_expr = if has_canceled_unknown

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as a follow on it might be nice to break this function into smaller functions (mostly so they can be documented more clearly) -- the techniques here are quite clever

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance: c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing feat/hash-join-dynamic-filter-with-range-partition (7274de3) to a05388e (merge-base) diff

Run configuration
run benchmark tpch
CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected
Details

Comparing HEAD and feat_hash-join-dynamic-filter-with-range-partition
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃ Query     ┃     HEAD ┃ feat_hash-join-dynamic-filter-with-range-partition ┃       Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
│ QQuery 1  │ 38.19 ms │                                           37.76 ms │    no change │
│ QQuery 2  │ 18.92 ms │                                           18.73 ms │    no change │
│ QQuery 3  │ 30.65 ms │                                           30.06 ms │    no change │
│ QQuery 4  │ 17.09 ms │                                           16.79 ms │    no change │
│ QQuery 5  │ 36.35 ms │                                           39.15 ms │ 1.08x slower │
│ QQuery 6  │ 16.01 ms │                                           15.98 ms │    no change │
│ QQuery 7  │ 42.88 ms │                                           42.92 ms │    no change │
│ QQuery 8  │ 41.75 ms │                                           41.55 ms │    no change │
│ QQuery 9  │ 49.33 ms │                                           48.76 ms │    no change │
│ QQuery 10 │ 41.23 ms │                                           41.01 ms │    no change │
│ QQuery 11 │ 13.01 ms │                                           12.91 ms │    no change │
│ QQuery 12 │ 23.92 ms │                                           23.39 ms │    no change │
│ QQuery 13 │ 31.99 ms │                                           32.27 ms │    no change │
│ QQuery 14 │ 22.68 ms │                                           22.81 ms │    no change │
│ QQuery 15 │ 30.19 ms │                                           30.30 ms │    no change │
│ QQuery 16 │ 13.54 ms │                                           13.34 ms │    no change │
│ QQuery 17 │ 67.69 ms │                                           69.01 ms │    no change │
│ QQuery 18 │ 57.80 ms │                                           58.14 ms │    no change │
│ QQuery 19 │ 32.37 ms │                                           32.03 ms │    no change │
│ QQuery 20 │ 31.21 ms │                                           30.89 ms │    no change │
│ QQuery 21 │ 55.32 ms │                                           53.04 ms │    no change │
│ QQuery 22 │ 13.32 ms │                                           13.54 ms │    no change │
└───────────┴──────────┴────────────────────────────────────────────────────┴──────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary                                                 ┃          ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD)                                                 │ 725.44ms │
│ Total Time (feat_hash-join-dynamic-filter-with-range-partition)   │ 724.36ms │
│ Average Time (HEAD)                                               │  32.97ms │
│ Average Time (feat_hash-join-dynamic-filter-with-range-partition) │  32.93ms │
│ Queries Faster                                                    │        0 │
│ Queries Slower                                                    │        1 │
│ Queries with No Change                                            │       21 │
│ Queries with Failure                                              │        0 │
└───────────────────────────────────────────────────────────────────┴──────────┘

Distribution per query (min / mean ±stddev / max):

Comparing HEAD and feat_hash-join-dynamic-filter-with-range-partition
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                           HEAD ┃ feat_hash-join-dynamic-filter-with-range-partition ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │ 38.19 / 39.42 ±1.21 / 40.94 ms │                     37.76 / 38.32 ±1.01 / 40.33 ms │     no change │
│ QQuery 2  │ 18.92 / 19.70 ±1.22 / 22.13 ms │                     18.73 / 19.05 ±0.38 / 19.78 ms │     no change │
│ QQuery 3  │ 30.65 / 32.57 ±1.07 / 33.63 ms │                     30.06 / 30.79 ±0.99 / 32.75 ms │ +1.06x faster │
│ QQuery 4  │ 17.09 / 17.61 ±0.60 / 18.71 ms │                     16.79 / 17.03 ±0.17 / 17.25 ms │     no change │
│ QQuery 5  │ 36.35 / 38.70 ±2.01 / 42.14 ms │                     39.15 / 39.57 ±0.26 / 39.85 ms │     no change │
│ QQuery 6  │ 16.01 / 16.48 ±0.80 / 18.08 ms │                     15.98 / 16.67 ±0.58 / 17.70 ms │     no change │
│ QQuery 7  │ 42.88 / 46.15 ±2.14 / 48.62 ms │                     42.92 / 44.42 ±1.29 / 46.47 ms │     no change │
│ QQuery 8  │ 41.75 / 42.71 ±1.21 / 45.03 ms │                     41.55 / 41.74 ±0.19 / 42.03 ms │     no change │
│ QQuery 9  │ 49.33 / 50.24 ±0.90 / 51.94 ms │                     48.76 / 49.66 ±0.57 / 50.16 ms │     no change │
│ QQuery 10 │ 41.23 / 41.80 ±0.53 / 42.71 ms │                     41.01 / 41.53 ±0.79 / 43.11 ms │     no change │
│ QQuery 11 │ 13.01 / 13.17 ±0.13 / 13.39 ms │                     12.91 / 13.28 ±0.64 / 14.55 ms │     no change │
│ QQuery 12 │ 23.92 / 24.05 ±0.08 / 24.18 ms │                     23.39 / 23.64 ±0.17 / 23.84 ms │     no change │
│ QQuery 13 │ 31.99 / 33.04 ±0.57 / 33.54 ms │                     32.27 / 33.52 ±1.05 / 35.16 ms │     no change │
│ QQuery 14 │ 22.68 / 22.88 ±0.14 / 23.10 ms │                     22.81 / 23.01 ±0.15 / 23.26 ms │     no change │
│ QQuery 15 │ 30.19 / 30.85 ±0.62 / 31.82 ms │                     30.30 / 30.98 ±0.68 / 32.26 ms │     no change │
│ QQuery 16 │ 13.54 / 13.66 ±0.10 / 13.85 ms │                     13.34 / 13.52 ±0.26 / 14.04 ms │     no change │
│ QQuery 17 │ 67.69 / 69.46 ±1.30 / 71.68 ms │                     69.01 / 70.07 ±0.72 / 70.95 ms │     no change │
│ QQuery 18 │ 57.80 / 59.16 ±0.78 / 60.21 ms │                     58.14 / 59.20 ±1.20 / 61.29 ms │     no change │
│ QQuery 19 │ 32.37 / 32.89 ±0.51 / 33.63 ms │                     32.03 / 32.93 ±1.29 / 35.48 ms │     no change │
│ QQuery 20 │ 31.21 / 31.49 ±0.39 / 32.26 ms │                     30.89 / 31.41 ±0.59 / 32.51 ms │     no change │
│ QQuery 21 │ 55.32 / 56.24 ±1.02 / 57.62 ms │                     53.04 / 55.44 ±1.35 / 56.70 ms │     no change │
│ QQuery 22 │ 13.32 / 13.76 ±0.30 / 14.23 ms │                     13.54 / 13.63 ±0.09 / 13.76 ms │     no change │
└───────────┴────────────────────────────────┴────────────────────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary                                                 ┃          ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD)                                                 │ 746.04ms │
│ Total Time (feat_hash-join-dynamic-filter-with-range-partition)   │ 739.40ms │
│ Average Time (HEAD)                                               │  33.91ms │
│ Average Time (feat_hash-join-dynamic-filter-with-range-partition) │  33.61ms │
│ Queries Faster                                                    │        1 │
│ Queries Slower                                                    │        0 │
│ Queries with No Change                                            │       21 │
│ Queries with Failure                                              │        0 │
└───────────────────────────────────────────────────────────────────┴──────────┘

Resource Usage

tpch — base (merge-base)

Metric Value
Wall time 5.0s
Peak memory 1.2 GiB
Avg memory 512.2 MiB
CPU user 21.1s
CPU sys 1.7s
Peak spill 0 B

tpch — branch

Metric Value
Wall time 5.0s
Peak memory 1.2 GiB
Avg memory 521.4 MiB
CPU user 20.9s
CPU sys 1.6s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance: c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing feat/hash-join-dynamic-filter-with-range-partition (7274de3) to a05388e (merge-base) diff

Run configuration
run benchmark tpch
CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected
Details

Comparing HEAD and feat_hash-join-dynamic-filter-with-range-partition
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃ Query     ┃     HEAD ┃ feat_hash-join-dynamic-filter-with-range-partition ┃       Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
│ QQuery 1  │ 38.17 ms │                                           38.19 ms │    no change │
│ QQuery 2  │ 19.19 ms │                                           19.38 ms │    no change │
│ QQuery 3  │ 31.00 ms │                                           33.52 ms │ 1.08x slower │
│ QQuery 4  │ 17.22 ms │                                           17.54 ms │    no change │
│ QQuery 5  │ 37.57 ms │                                           37.51 ms │    no change │
│ QQuery 6  │ 15.96 ms │                                           16.17 ms │    no change │
│ QQuery 7  │ 44.38 ms │                                           44.16 ms │    no change │
│ QQuery 8  │ 42.12 ms │                                           42.12 ms │    no change │
│ QQuery 9  │ 49.24 ms │                                           49.01 ms │    no change │
│ QQuery 10 │ 41.79 ms │                                           42.02 ms │    no change │
│ QQuery 11 │ 13.40 ms │                                           13.49 ms │    no change │
│ QQuery 12 │ 23.69 ms │                                           24.22 ms │    no change │
│ QQuery 13 │ 31.61 ms │                                           31.66 ms │    no change │
│ QQuery 14 │ 23.12 ms │                                           23.19 ms │    no change │
│ QQuery 15 │ 30.81 ms │                                           30.76 ms │    no change │
│ QQuery 16 │ 13.80 ms │                                           13.98 ms │    no change │
│ QQuery 17 │ 69.38 ms │                                           70.20 ms │    no change │
│ QQuery 18 │ 58.32 ms │                                           58.95 ms │    no change │
│ QQuery 19 │ 32.56 ms │                                           32.57 ms │    no change │
│ QQuery 20 │ 31.18 ms │                                           31.58 ms │    no change │
│ QQuery 21 │ 54.06 ms │                                           54.04 ms │    no change │
│ QQuery 22 │ 13.89 ms │                                           14.01 ms │    no change │
└───────────┴──────────┴────────────────────────────────────────────────────┴──────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary                                                 ┃          ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD)                                                 │ 732.45ms │
│ Total Time (feat_hash-join-dynamic-filter-with-range-partition)   │ 738.28ms │
│ Average Time (HEAD)                                               │  33.29ms │
│ Average Time (feat_hash-join-dynamic-filter-with-range-partition) │  33.56ms │
│ Queries Faster                                                    │        0 │
│ Queries Slower                                                    │        1 │
│ Queries with No Change                                            │       21 │
│ Queries with Failure                                              │        0 │
└───────────────────────────────────────────────────────────────────┴──────────┘

Distribution per query (min / mean ±stddev / max):

Comparing HEAD and feat_hash-join-dynamic-filter-with-range-partition
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃ Query     ┃                           HEAD ┃ feat_hash-join-dynamic-filter-with-range-partition ┃       Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
│ QQuery 1  │ 38.17 / 39.47 ±1.37 / 41.21 ms │                     38.19 / 38.95 ±0.95 / 40.80 ms │    no change │
│ QQuery 2  │ 19.19 / 19.85 ±1.02 / 21.88 ms │                     19.38 / 19.97 ±0.69 / 21.27 ms │    no change │
│ QQuery 3  │ 31.00 / 32.52 ±0.99 / 33.36 ms │                     33.52 / 34.45 ±0.78 / 35.83 ms │ 1.06x slower │
│ QQuery 4  │ 17.22 / 18.01 ±0.66 / 19.04 ms │                     17.54 / 18.01 ±0.37 / 18.52 ms │    no change │
│ QQuery 5  │ 37.57 / 38.27 ±0.90 / 40.04 ms │                     37.51 / 39.92 ±1.24 / 41.05 ms │    no change │
│ QQuery 6  │ 15.96 / 16.10 ±0.14 / 16.35 ms │                     16.17 / 16.86 ±1.17 / 19.18 ms │    no change │
│ QQuery 7  │ 44.38 / 46.37 ±1.40 / 48.42 ms │                     44.16 / 45.80 ±1.22 / 47.67 ms │    no change │
│ QQuery 8  │ 42.12 / 42.98 ±1.17 / 45.28 ms │                     42.12 / 43.04 ±0.96 / 44.85 ms │    no change │
│ QQuery 9  │ 49.24 / 50.14 ±0.74 / 50.98 ms │                     49.01 / 50.31 ±1.08 / 52.22 ms │    no change │
│ QQuery 10 │ 41.79 / 42.22 ±0.32 / 42.68 ms │                     42.02 / 42.97 ±0.74 / 44.06 ms │    no change │
│ QQuery 11 │ 13.40 / 13.62 ±0.24 / 13.96 ms │                     13.49 / 13.64 ±0.15 / 13.91 ms │    no change │
│ QQuery 12 │ 23.69 / 24.20 ±0.29 / 24.53 ms │                     24.22 / 24.45 ±0.22 / 24.87 ms │    no change │
│ QQuery 13 │ 31.61 / 33.02 ±0.77 / 33.89 ms │                     31.66 / 33.44 ±1.37 / 35.41 ms │    no change │
│ QQuery 14 │ 23.12 / 23.59 ±0.89 / 25.37 ms │                     23.19 / 23.32 ±0.13 / 23.55 ms │    no change │
│ QQuery 15 │ 30.81 / 31.41 ±0.53 / 32.18 ms │                     30.76 / 31.60 ±0.67 / 32.42 ms │    no change │
│ QQuery 16 │ 13.80 / 13.98 ±0.13 / 14.14 ms │                     13.98 / 14.09 ±0.07 / 14.18 ms │    no change │
│ QQuery 17 │ 69.38 / 71.15 ±1.37 / 73.43 ms │                     70.20 / 71.19 ±1.05 / 72.74 ms │    no change │
│ QQuery 18 │ 58.32 / 59.49 ±0.76 / 60.54 ms │                     58.95 / 61.90 ±2.37 / 65.25 ms │    no change │
│ QQuery 19 │ 32.56 / 32.82 ±0.29 / 33.37 ms │                     32.57 / 33.28 ±0.87 / 34.89 ms │    no change │
│ QQuery 20 │ 31.18 / 31.57 ±0.26 / 31.97 ms │                     31.58 / 31.75 ±0.18 / 32.09 ms │    no change │
│ QQuery 21 │ 54.06 / 56.41 ±1.67 / 58.36 ms │                     54.04 / 55.20 ±0.71 / 56.09 ms │    no change │
│ QQuery 22 │ 13.89 / 14.01 ±0.19 / 14.39 ms │                     14.01 / 14.11 ±0.15 / 14.40 ms │    no change │
└───────────┴────────────────────────────────┴────────────────────────────────────────────────────┴──────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary                                                 ┃          ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD)                                                 │ 751.21ms │
│ Total Time (feat_hash-join-dynamic-filter-with-range-partition)   │ 758.23ms │
│ Average Time (HEAD)                                               │  34.15ms │
│ Average Time (feat_hash-join-dynamic-filter-with-range-partition) │  34.47ms │
│ Queries Faster                                                    │        0 │
│ Queries Slower                                                    │        1 │
│ Queries with No Change                                            │       21 │
│ Queries with Failure                                              │        0 │
└───────────────────────────────────────────────────────────────────┴──────────┘

Resource Usage

tpch — base (merge-base)

Metric Value
Wall time 5.0s
Peak memory 1.2 GiB
Avg memory 523.4 MiB
CPU user 21.4s
CPU sys 1.7s
Peak spill 0 B

tpch — branch

Metric Value
Wall time 5.0s
Peak memory 1.2 GiB
Avg memory 521.1 MiB
CPU user 21.7s
CPU sys 1.7s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance: c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing feat/hash-join-dynamic-filter-with-range-partition (7274de3) to a05388e (merge-base) diff

Run configuration
run benchmark tpcds
CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected
Details

Comparing HEAD and feat_hash-join-dynamic-filter-with-range-partition
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃       HEAD ┃ feat_hash-join-dynamic-filter-with-range-partition ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │    5.76 ms │                                            5.60 ms │     no change │
│ QQuery 2  │   80.44 ms │                                           81.51 ms │     no change │
│ QQuery 3  │   29.57 ms │                                           29.41 ms │     no change │
│ QQuery 4  │  504.83 ms │                                          506.30 ms │     no change │
│ QQuery 5  │   52.07 ms │                                           52.65 ms │     no change │
│ QQuery 6  │   37.32 ms │                                           36.87 ms │     no change │
│ QQuery 7  │   94.52 ms │                                           94.93 ms │     no change │
│ QQuery 8  │   37.19 ms │                                           37.15 ms │     no change │
│ QQuery 9  │   51.79 ms │                                           54.50 ms │  1.05x slower │
│ QQuery 10 │   63.39 ms │                                           63.25 ms │     no change │
│ QQuery 11 │  320.76 ms │                                          316.95 ms │     no change │
│ QQuery 12 │   29.19 ms │                                           29.09 ms │     no change │
│ QQuery 13 │  120.13 ms │                                          118.69 ms │     no change │
│ QQuery 14 │  422.08 ms │                                          423.31 ms │     no change │
│ QQuery 15 │   58.55 ms │                                           58.84 ms │     no change │
│ QQuery 16 │    6.78 ms │                                            6.77 ms │     no change │
│ QQuery 17 │   79.92 ms │                                           81.00 ms │     no change │
│ QQuery 18 │  122.92 ms │                                          126.38 ms │     no change │
│ QQuery 19 │   41.74 ms │                                           42.62 ms │     no change │
│ QQuery 20 │   37.31 ms │                                           37.53 ms │     no change │
│ QQuery 21 │   17.80 ms │                                           18.25 ms │     no change │
│ QQuery 22 │   64.26 ms │                                           64.82 ms │     no change │
│ QQuery 23 │  350.29 ms │                                          360.05 ms │     no change │
│ QQuery 24 │  225.81 ms │                                          228.00 ms │     no change │
│ QQuery 25 │  109.45 ms │                                          111.24 ms │     no change │
│ QQuery 26 │   58.41 ms │                                           58.57 ms │     no change │
│ QQuery 27 │    6.30 ms │                                            6.47 ms │     no change │
│ QQuery 28 │   56.07 ms │                                           56.70 ms │     no change │
│ QQuery 29 │   97.61 ms │                                          100.48 ms │     no change │
│ QQuery 30 │   32.64 ms │                                           33.30 ms │     no change │
│ QQuery 31 │  112.29 ms │                                          113.21 ms │     no change │
│ QQuery 32 │   21.10 ms │                                           21.53 ms │     no change │
│ QQuery 33 │   38.91 ms │                                           38.84 ms │     no change │
│ QQuery 34 │   10.33 ms │                                           10.37 ms │     no change │
│ QQuery 35 │   74.13 ms │                                           74.48 ms │     no change │
│ QQuery 36 │    5.83 ms │                                            6.00 ms │     no change │
│ QQuery 37 │    6.97 ms │                                            7.20 ms │     no change │
│ QQuery 38 │   63.32 ms │                                           64.86 ms │     no change │
│ QQuery 39 │   90.94 ms │                                           91.64 ms │     no change │
│ QQuery 40 │   23.40 ms │                                           23.79 ms │     no change │
│ QQuery 41 │   11.90 ms │                                           12.04 ms │     no change │
│ QQuery 42 │   23.95 ms │                                           24.78 ms │     no change │
│ QQuery 43 │    5.03 ms │                                            5.17 ms │     no change │
│ QQuery 44 │    9.45 ms │                                            9.77 ms │     no change │
│ QQuery 45 │   39.46 ms │                                           40.96 ms │     no change │
│ QQuery 46 │   12.60 ms │                                           12.28 ms │     no change │
│ QQuery 47 │  238.47 ms │                                          241.55 ms │     no change │
│ QQuery 48 │   96.63 ms │                                           96.65 ms │     no change │
│ QQuery 49 │   76.71 ms │                                           76.65 ms │     no change │
│ QQuery 50 │   59.28 ms │                                           59.17 ms │     no change │
│ QQuery 51 │   91.28 ms │                                           94.45 ms │     no change │
│ QQuery 52 │   24.55 ms │                                           24.48 ms │     no change │
│ QQuery 53 │   29.38 ms │                                           29.64 ms │     no change │
│ QQuery 54 │   55.03 ms │                                           54.92 ms │     no change │
│ QQuery 55 │   23.47 ms │                                           23.67 ms │     no change │
│ QQuery 56 │   39.14 ms │                                           39.53 ms │     no change │
│ QQuery 57 │  178.64 ms │                                          178.32 ms │     no change │
│ QQuery 58 │  114.55 ms │                                          113.90 ms │     no change │
│ QQuery 59 │  118.17 ms │                                          118.51 ms │     no change │
│ QQuery 60 │   40.32 ms │                                           39.99 ms │     no change │
│ QQuery 61 │   12.55 ms │                                           12.60 ms │     no change │
│ QQuery 62 │   47.28 ms │                                           47.52 ms │     no change │
│ QQuery 63 │   29.81 ms │                                           30.20 ms │     no change │
│ QQuery 64 │  413.01 ms │                                          413.51 ms │     no change │
│ QQuery 65 │  123.87 ms │                                          124.37 ms │     no change │
│ QQuery 66 │   81.33 ms │                                           82.10 ms │     no change │
│ QQuery 67 │  255.74 ms │                                          252.06 ms │     no change │
│ QQuery 68 │   12.34 ms │                                           12.54 ms │     no change │
│ QQuery 69 │   58.57 ms │                                           57.80 ms │     no change │
│ QQuery 70 │  108.23 ms │                                          108.14 ms │     no change │
│ QQuery 71 │   35.88 ms │                                           36.24 ms │     no change │
│ QQuery 72 │ 2071.45 ms │                                         1931.80 ms │ +1.07x faster │
│ QQuery 73 │   10.05 ms │                                           10.16 ms │     no change │
│ QQuery 74 │  178.91 ms │                                          181.14 ms │     no change │
│ QQuery 75 │  149.45 ms │                                          150.10 ms │     no change │
│ QQuery 76 │   35.72 ms │                                           36.18 ms │     no change │
│ QQuery 77 │   61.57 ms │                                           62.55 ms │     no change │
│ QQuery 78 │  201.48 ms │                                          202.42 ms │     no change │
│ QQuery 79 │   67.54 ms │                                           67.84 ms │     no change │
│ QQuery 80 │   98.86 ms │                                           99.99 ms │     no change │
│ QQuery 81 │   26.54 ms │                                           26.93 ms │     no change │
│ QQuery 82 │   17.00 ms │                                           17.59 ms │     no change │
│ QQuery 83 │   39.98 ms │                                           41.37 ms │     no change │
│ QQuery 84 │   30.38 ms │                                           30.50 ms │     no change │
│ QQuery 85 │  107.14 ms │                                          108.35 ms │     no change │
│ QQuery 86 │   26.12 ms │                                           26.63 ms │     no change │
│ QQuery 87 │   64.26 ms │                                           64.61 ms │     no change │
│ QQuery 88 │   63.64 ms │                                           64.37 ms │     no change │
│ QQuery 89 │   35.79 ms │                                           36.25 ms │     no change │
│ QQuery 90 │   17.29 ms │                                           17.69 ms │     no change │
│ QQuery 91 │   47.10 ms │                                           47.21 ms │     no change │
│ QQuery 92 │   29.71 ms │                                           30.04 ms │     no change │
│ QQuery 93 │   50.27 ms │                                           50.05 ms │     no change │
│ QQuery 94 │   38.58 ms │                                           38.82 ms │     no change │
│ QQuery 95 │   80.68 ms │                                           82.25 ms │     no change │
│ QQuery 96 │   24.52 ms │                                           24.70 ms │     no change │
│ QQuery 97 │   47.44 ms │                                           47.15 ms │     no change │
│ QQuery 98 │   43.82 ms │                                           43.56 ms │     no change │
│ QQuery 99 │   71.44 ms │                                           71.73 ms │     no change │
└───────────┴────────────┴────────────────────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary                                                 ┃           ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD)                                                 │ 9865.46ms │
│ Total Time (feat_hash-join-dynamic-filter-with-range-partition)   │ 9778.67ms │
│ Average Time (HEAD)                                               │   99.65ms │
│ Average Time (feat_hash-join-dynamic-filter-with-range-partition) │   98.77ms │
│ Queries Faster                                                    │         1 │
│ Queries Slower                                                    │         1 │
│ Queries with No Change                                            │        97 │
│ Queries with Failure                                              │         0 │
└───────────────────────────────────────────────────────────────────┴───────────┘

Distribution per query (min / mean ±stddev / max):

Comparing HEAD and feat_hash-join-dynamic-filter-with-range-partition
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                                  HEAD ┃ feat_hash-join-dynamic-filter-with-range-partition ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │           5.76 / 6.24 ±0.81 / 7.86 ms │                        5.60 / 6.17 ±0.89 / 7.92 ms │     no change │
│ QQuery 2  │        80.44 / 80.74 ±0.18 / 80.98 ms │                     81.51 / 81.88 ±0.25 / 82.18 ms │     no change │
│ QQuery 3  │        29.57 / 29.80 ±0.20 / 30.16 ms │                     29.41 / 29.58 ±0.14 / 29.82 ms │     no change │
│ QQuery 4  │     504.83 / 511.42 ±3.72 / 515.11 ms │                  506.30 / 509.26 ±2.77 / 513.98 ms │     no change │
│ QQuery 5  │        52.07 / 52.85 ±0.80 / 54.23 ms │                     52.65 / 53.14 ±0.34 / 53.58 ms │     no change │
│ QQuery 6  │        37.32 / 37.56 ±0.16 / 37.80 ms │                     36.87 / 37.46 ±0.36 / 37.83 ms │     no change │
│ QQuery 7  │       94.52 / 96.11 ±2.51 / 101.11 ms │                    94.93 / 96.65 ±2.17 / 100.93 ms │     no change │
│ QQuery 8  │        37.19 / 37.93 ±0.68 / 38.92 ms │                     37.15 / 37.66 ±0.45 / 38.31 ms │     no change │
│ QQuery 9  │        51.79 / 55.01 ±2.25 / 58.68 ms │                     54.50 / 55.95 ±1.11 / 57.72 ms │     no change │
│ QQuery 10 │        63.39 / 63.93 ±0.29 / 64.17 ms │                     63.25 / 63.85 ±0.50 / 64.67 ms │     no change │
│ QQuery 11 │     320.76 / 323.54 ±1.88 / 326.25 ms │                  316.95 / 322.16 ±3.71 / 326.80 ms │     no change │
│ QQuery 12 │        29.19 / 29.63 ±0.37 / 30.27 ms │                     29.09 / 29.58 ±0.44 / 30.12 ms │     no change │
│ QQuery 13 │     120.13 / 121.11 ±1.21 / 123.44 ms │                  118.69 / 120.58 ±1.21 / 122.48 ms │     no change │
│ QQuery 14 │     422.08 / 424.07 ±1.47 / 426.17 ms │                  423.31 / 427.90 ±2.90 / 430.87 ms │     no change │
│ QQuery 15 │        58.55 / 59.05 ±0.54 / 60.07 ms │                     58.84 / 59.29 ±0.46 / 60.11 ms │     no change │
│ QQuery 16 │           6.78 / 7.02 ±0.19 / 7.35 ms │                        6.77 / 7.00 ±0.14 / 7.20 ms │     no change │
│ QQuery 17 │        79.92 / 82.20 ±1.69 / 84.74 ms │                     81.00 / 84.22 ±2.50 / 87.85 ms │     no change │
│ QQuery 18 │     122.92 / 123.66 ±0.49 / 124.17 ms │                  126.38 / 127.78 ±1.39 / 130.41 ms │     no change │
│ QQuery 19 │        41.74 / 42.93 ±1.59 / 45.92 ms │                     42.62 / 43.93 ±2.24 / 48.40 ms │     no change │
│ QQuery 20 │        37.31 / 37.90 ±0.54 / 38.73 ms │                     37.53 / 38.22 ±0.49 / 39.06 ms │     no change │
│ QQuery 21 │        17.80 / 18.08 ±0.20 / 18.31 ms │                     18.25 / 18.51 ±0.20 / 18.84 ms │     no change │
│ QQuery 22 │        64.26 / 64.95 ±0.71 / 66.04 ms │                     64.82 / 66.75 ±1.00 / 67.47 ms │     no change │
│ QQuery 23 │     350.29 / 356.46 ±4.65 / 363.83 ms │                  360.05 / 367.58 ±4.63 / 374.36 ms │     no change │
│ QQuery 24 │     225.81 / 229.15 ±4.16 / 236.85 ms │                  228.00 / 230.01 ±3.33 / 236.61 ms │     no change │
│ QQuery 25 │     109.45 / 112.83 ±3.70 / 119.03 ms │                  111.24 / 113.92 ±2.54 / 117.90 ms │     no change │
│ QQuery 26 │        58.41 / 59.03 ±0.50 / 59.91 ms │                     58.57 / 58.95 ±0.25 / 59.34 ms │     no change │
│ QQuery 27 │           6.30 / 6.46 ±0.15 / 6.70 ms │                        6.47 / 6.64 ±0.12 / 6.83 ms │     no change │
│ QQuery 28 │        56.07 / 58.42 ±2.54 / 61.79 ms │                     56.70 / 59.19 ±2.42 / 62.19 ms │     no change │
│ QQuery 29 │      97.61 / 103.21 ±7.45 / 117.64 ms │                  100.48 / 102.21 ±1.89 / 104.71 ms │     no change │
│ QQuery 30 │        32.64 / 33.66 ±0.57 / 34.24 ms │                     33.30 / 33.67 ±0.28 / 34.04 ms │     no change │
│ QQuery 31 │     112.29 / 112.69 ±0.39 / 113.37 ms │                  113.21 / 113.79 ±0.52 / 114.42 ms │     no change │
│ QQuery 32 │        21.10 / 21.58 ±0.75 / 23.06 ms │                     21.53 / 22.25 ±1.03 / 24.25 ms │     no change │
│ QQuery 33 │        38.91 / 40.35 ±1.51 / 43.22 ms │                     38.84 / 39.38 ±0.61 / 40.55 ms │     no change │
│ QQuery 34 │        10.33 / 10.54 ±0.18 / 10.77 ms │                     10.37 / 10.71 ±0.23 / 11.05 ms │     no change │
│ QQuery 35 │        74.13 / 74.95 ±0.44 / 75.38 ms │                     74.48 / 75.37 ±0.63 / 76.12 ms │     no change │
│ QQuery 36 │           5.83 / 6.01 ±0.21 / 6.40 ms │                        6.00 / 6.16 ±0.20 / 6.54 ms │     no change │
│ QQuery 37 │           6.97 / 7.07 ±0.08 / 7.22 ms │                        7.20 / 7.29 ±0.09 / 7.43 ms │     no change │
│ QQuery 38 │        63.32 / 64.45 ±1.60 / 67.63 ms │                     64.86 / 66.34 ±1.99 / 70.27 ms │     no change │
│ QQuery 39 │        90.94 / 92.10 ±0.84 / 93.15 ms │                     91.64 / 92.60 ±1.25 / 94.99 ms │     no change │
│ QQuery 40 │        23.40 / 23.63 ±0.17 / 23.87 ms │                     23.79 / 23.92 ±0.16 / 24.23 ms │     no change │
│ QQuery 41 │        11.90 / 12.09 ±0.15 / 12.29 ms │                     12.04 / 12.25 ±0.14 / 12.40 ms │     no change │
│ QQuery 42 │        23.95 / 24.78 ±0.75 / 26.06 ms │                     24.78 / 25.16 ±0.26 / 25.50 ms │     no change │
│ QQuery 43 │           5.03 / 5.14 ±0.15 / 5.44 ms │                        5.17 / 5.37 ±0.18 / 5.63 ms │     no change │
│ QQuery 44 │           9.45 / 9.63 ±0.13 / 9.83 ms │                      9.77 / 11.01 ±2.14 / 15.29 ms │  1.14x slower │
│ QQuery 45 │        39.46 / 42.02 ±2.86 / 47.24 ms │                     40.96 / 42.50 ±1.48 / 45.18 ms │     no change │
│ QQuery 46 │        12.60 / 12.80 ±0.13 / 12.94 ms │                     12.28 / 12.75 ±0.31 / 13.14 ms │     no change │
│ QQuery 47 │     238.47 / 241.98 ±2.63 / 245.76 ms │                  241.55 / 245.22 ±2.81 / 248.71 ms │     no change │
│ QQuery 48 │        96.63 / 97.36 ±0.41 / 97.87 ms │                    96.65 / 98.50 ±1.59 / 101.44 ms │     no change │
│ QQuery 49 │        76.71 / 80.41 ±5.83 / 91.93 ms │                     76.65 / 78.27 ±1.66 / 81.34 ms │     no change │
│ QQuery 50 │        59.28 / 60.01 ±0.51 / 60.53 ms │                     59.17 / 59.78 ±0.33 / 60.13 ms │     no change │
│ QQuery 51 │        91.28 / 93.14 ±1.06 / 94.47 ms │                    94.45 / 96.95 ±2.87 / 102.36 ms │     no change │
│ QQuery 52 │        24.55 / 25.99 ±2.21 / 30.36 ms │                     24.48 / 24.88 ±0.29 / 25.31 ms │     no change │
│ QQuery 53 │        29.38 / 29.91 ±0.43 / 30.44 ms │                     29.64 / 29.83 ±0.15 / 30.04 ms │     no change │
│ QQuery 54 │        55.03 / 55.52 ±0.38 / 55.88 ms │                     54.92 / 55.40 ±0.40 / 56.13 ms │     no change │
│ QQuery 55 │        23.47 / 23.89 ±0.26 / 24.27 ms │                     23.67 / 24.04 ±0.19 / 24.22 ms │     no change │
│ QQuery 56 │        39.14 / 39.63 ±0.27 / 39.94 ms │                     39.53 / 41.29 ±2.23 / 45.61 ms │     no change │
│ QQuery 57 │     178.64 / 180.47 ±1.87 / 183.34 ms │                  178.32 / 179.68 ±1.74 / 182.92 ms │     no change │
│ QQuery 58 │     114.55 / 117.50 ±4.11 / 125.62 ms │                  113.90 / 116.08 ±1.70 / 118.82 ms │     no change │
│ QQuery 59 │     118.17 / 118.66 ±0.39 / 119.18 ms │                  118.51 / 120.03 ±1.45 / 122.78 ms │     no change │
│ QQuery 60 │        40.32 / 41.68 ±0.91 / 43.05 ms │                     39.99 / 40.55 ±0.68 / 41.80 ms │     no change │
│ QQuery 61 │        12.55 / 12.64 ±0.08 / 12.79 ms │                     12.60 / 12.74 ±0.09 / 12.87 ms │     no change │
│ QQuery 62 │        47.28 / 47.54 ±0.19 / 47.77 ms │                     47.52 / 47.89 ±0.42 / 48.71 ms │     no change │
│ QQuery 63 │        29.81 / 29.96 ±0.11 / 30.14 ms │                     30.20 / 30.62 ±0.34 / 31.05 ms │     no change │
│ QQuery 64 │     413.01 / 417.87 ±8.07 / 433.98 ms │                  413.51 / 419.39 ±4.34 / 425.86 ms │     no change │
│ QQuery 65 │     123.87 / 127.38 ±3.06 / 132.59 ms │                  124.37 / 126.58 ±2.25 / 129.40 ms │     no change │
│ QQuery 66 │        81.33 / 81.72 ±0.20 / 81.90 ms │                     82.10 / 82.49 ±0.23 / 82.79 ms │     no change │
│ QQuery 67 │     255.74 / 257.28 ±1.46 / 259.92 ms │                  252.06 / 259.63 ±6.55 / 268.38 ms │     no change │
│ QQuery 68 │        12.34 / 14.34 ±2.60 / 19.26 ms │                     12.54 / 12.72 ±0.16 / 12.99 ms │ +1.13x faster │
│ QQuery 69 │        58.57 / 59.15 ±0.32 / 59.49 ms │                     57.80 / 58.47 ±0.53 / 59.24 ms │     no change │
│ QQuery 70 │     108.23 / 113.49 ±5.03 / 122.75 ms │                  108.14 / 112.49 ±5.36 / 122.52 ms │     no change │
│ QQuery 71 │        35.88 / 37.82 ±2.18 / 41.83 ms │                     36.24 / 36.83 ±0.64 / 38.02 ms │     no change │
│ QQuery 72 │ 2071.45 / 2134.36 ±42.65 / 2190.50 ms │             1931.80 / 2103.40 ±104.18 / 2236.00 ms │     no change │
│ QQuery 73 │        10.05 / 11.80 ±2.91 / 17.59 ms │                     10.16 / 10.30 ±0.16 / 10.60 ms │ +1.15x faster │
│ QQuery 74 │     178.91 / 182.39 ±3.01 / 187.17 ms │                  181.14 / 184.48 ±2.25 / 187.49 ms │     no change │
│ QQuery 75 │     149.45 / 153.01 ±3.00 / 158.54 ms │                  150.10 / 152.06 ±2.75 / 157.42 ms │     no change │
│ QQuery 76 │        35.72 / 36.05 ±0.22 / 36.31 ms │                     36.18 / 36.59 ±0.23 / 36.83 ms │     no change │
│ QQuery 77 │        61.57 / 62.40 ±0.68 / 63.51 ms │                     62.55 / 64.80 ±2.25 / 68.90 ms │     no change │
│ QQuery 78 │     201.48 / 205.49 ±5.78 / 216.78 ms │                  202.42 / 205.29 ±3.19 / 210.28 ms │     no change │
│ QQuery 79 │        67.54 / 67.99 ±0.57 / 69.09 ms │                     67.84 / 68.61 ±0.68 / 69.88 ms │     no change │
│ QQuery 80 │      98.86 / 100.73 ±1.10 / 102.21 ms │                   99.99 / 102.08 ±1.41 / 103.97 ms │     no change │
│ QQuery 81 │        26.54 / 26.82 ±0.32 / 27.44 ms │                     26.93 / 29.84 ±3.54 / 34.93 ms │  1.11x slower │
│ QQuery 82 │        17.00 / 20.21 ±3.37 / 25.61 ms │                     17.59 / 18.17 ±0.93 / 20.02 ms │ +1.11x faster │
│ QQuery 83 │        39.98 / 41.39 ±1.18 / 43.48 ms │                     41.37 / 42.07 ±0.37 / 42.40 ms │     no change │
│ QQuery 84 │        30.38 / 30.77 ±0.27 / 31.03 ms │                     30.50 / 30.85 ±0.25 / 31.22 ms │     no change │
│ QQuery 85 │     107.14 / 108.40 ±0.71 / 109.03 ms │                  108.35 / 109.95 ±2.13 / 114.07 ms │     no change │
│ QQuery 86 │        26.12 / 29.55 ±3.13 / 34.59 ms │                     26.63 / 27.30 ±0.96 / 29.17 ms │ +1.08x faster │
│ QQuery 87 │        64.26 / 65.03 ±0.57 / 65.84 ms │                     64.61 / 65.76 ±0.93 / 66.89 ms │     no change │
│ QQuery 88 │        63.64 / 63.97 ±0.55 / 65.07 ms │                     64.37 / 64.73 ±0.31 / 65.17 ms │     no change │
│ QQuery 89 │        35.79 / 36.36 ±0.41 / 36.97 ms │                     36.25 / 37.41 ±1.72 / 40.80 ms │     no change │
│ QQuery 90 │        17.29 / 18.78 ±2.50 / 23.77 ms │                     17.69 / 19.36 ±1.84 / 22.28 ms │     no change │
│ QQuery 91 │        47.10 / 48.35 ±1.91 / 52.15 ms │                     47.21 / 48.13 ±0.72 / 49.12 ms │     no change │
│ QQuery 92 │        29.71 / 30.53 ±0.71 / 31.42 ms │                     30.04 / 30.87 ±0.61 / 31.66 ms │     no change │
│ QQuery 93 │        50.27 / 50.91 ±0.61 / 51.81 ms │                     50.05 / 51.15 ±0.81 / 52.40 ms │     no change │
│ QQuery 94 │        38.58 / 38.83 ±0.15 / 39.05 ms │                     38.82 / 39.18 ±0.32 / 39.59 ms │     no change │
│ QQuery 95 │        80.68 / 83.69 ±2.72 / 88.61 ms │                     82.25 / 83.83 ±2.33 / 88.46 ms │     no change │
│ QQuery 96 │        24.52 / 24.65 ±0.10 / 24.81 ms │                     24.70 / 24.82 ±0.11 / 25.00 ms │     no change │
│ QQuery 97 │        47.44 / 48.00 ±0.74 / 49.46 ms │                     47.15 / 47.77 ±0.34 / 48.16 ms │     no change │
│ QQuery 98 │        43.82 / 44.22 ±0.30 / 44.68 ms │                     43.56 / 44.43 ±0.79 / 45.65 ms │     no change │
│ QQuery 99 │        71.44 / 73.13 ±1.63 / 75.61 ms │                     71.73 / 73.74 ±2.18 / 77.66 ms │     no change │
└───────────┴───────────────────────────────────────┴────────────────────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary                                                 ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)                                                 │ 10067.94ms │
│ Total Time (feat_hash-join-dynamic-filter-with-range-partition)   │ 10083.84ms │
│ Average Time (HEAD)                                               │   101.70ms │
│ Average Time (feat_hash-join-dynamic-filter-with-range-partition) │   101.86ms │
│ Queries Faster                                                    │          4 │
│ Queries Slower                                                    │          2 │
│ Queries with No Change                                            │         93 │
│ Queries with Failure                                              │          0 │
└───────────────────────────────────────────────────────────────────┴────────────┘

Resource Usage

tpcds — base (merge-base)

Metric Value
Wall time 55.0s
Peak memory 2.3 GiB
Avg memory 1.5 GiB
CPU user 220.8s
CPU sys 6.5s
Peak spill 0 B

tpcds — branch

Metric Value
Wall time 55.0s
Peak memory 2.4 GiB
Avg memory 1.6 GiB
CPU user 221.5s
CPU sys 6.0s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance: c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing feat/hash-join-dynamic-filter-with-range-partition (7274de3) to a05388e (merge-base) diff

Run configuration
run benchmark tpcds
CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected
Details

Comparing HEAD and feat_hash-join-dynamic-filter-with-range-partition
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃ Query     ┃       HEAD ┃ feat_hash-join-dynamic-filter-with-range-partition ┃       Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
│ QQuery 1  │    5.54 ms │                                            5.57 ms │    no change │
│ QQuery 2  │   79.81 ms │                                           80.15 ms │    no change │
│ QQuery 3  │   29.39 ms │                                           29.27 ms │    no change │
│ QQuery 4  │  509.73 ms │                                          504.60 ms │    no change │
│ QQuery 5  │   52.93 ms │                                           52.52 ms │    no change │
│ QQuery 6  │   36.78 ms │                                           37.18 ms │    no change │
│ QQuery 7  │   95.03 ms │                                           95.27 ms │    no change │
│ QQuery 8  │   37.47 ms │                                           37.80 ms │    no change │
│ QQuery 9  │   51.92 ms │                                           53.43 ms │    no change │
│ QQuery 10 │   63.41 ms │                                           63.33 ms │    no change │
│ QQuery 11 │  319.21 ms │                                          316.99 ms │    no change │
│ QQuery 12 │   28.86 ms │                                           29.00 ms │    no change │
│ QQuery 13 │  118.68 ms │                                          119.40 ms │    no change │
│ QQuery 14 │  417.31 ms │                                          421.86 ms │    no change │
│ QQuery 15 │   58.58 ms │                                           58.47 ms │    no change │
│ QQuery 16 │    6.75 ms │                                            6.78 ms │    no change │
│ QQuery 17 │   79.54 ms │                                           80.44 ms │    no change │
│ QQuery 18 │  122.08 ms │                                          123.65 ms │    no change │
│ QQuery 19 │   41.75 ms │                                           41.83 ms │    no change │
│ QQuery 20 │   36.37 ms │                                           36.91 ms │    no change │
│ QQuery 21 │   17.59 ms │                                           17.71 ms │    no change │
│ QQuery 22 │   64.48 ms │                                           64.92 ms │    no change │
│ QQuery 23 │  347.75 ms │                                          348.82 ms │    no change │
│ QQuery 24 │  224.24 ms │                                          224.79 ms │    no change │
│ QQuery 25 │  109.31 ms │                                          111.26 ms │    no change │
│ QQuery 26 │   58.67 ms │                                           58.70 ms │    no change │
│ QQuery 27 │    6.31 ms │                                            6.41 ms │    no change │
│ QQuery 28 │   56.26 ms │                                           57.41 ms │    no change │
│ QQuery 29 │   96.53 ms │                                           98.23 ms │    no change │
│ QQuery 30 │   33.07 ms │                                           33.27 ms │    no change │
│ QQuery 31 │  111.18 ms │                                          113.05 ms │    no change │
│ QQuery 32 │   20.53 ms │                                           20.85 ms │    no change │
│ QQuery 33 │   39.20 ms │                                           39.14 ms │    no change │
│ QQuery 34 │   10.14 ms │                                           10.30 ms │    no change │
│ QQuery 35 │   74.33 ms │                                           72.79 ms │    no change │
│ QQuery 36 │    5.86 ms │                                            5.82 ms │    no change │
│ QQuery 37 │    7.00 ms │                                            7.06 ms │    no change │
│ QQuery 38 │   62.66 ms │                                           63.47 ms │    no change │
│ QQuery 39 │   91.86 ms │                                           91.83 ms │    no change │
│ QQuery 40 │   23.56 ms │                                           23.71 ms │    no change │
│ QQuery 41 │   11.78 ms │                                           11.92 ms │    no change │
│ QQuery 42 │   23.88 ms │                                           24.21 ms │    no change │
│ QQuery 43 │    5.02 ms │                                            5.12 ms │    no change │
│ QQuery 44 │    9.23 ms │                                            9.54 ms │    no change │
│ QQuery 45 │   39.35 ms │                                           39.56 ms │    no change │
│ QQuery 46 │   12.06 ms │                                           12.22 ms │    no change │
│ QQuery 47 │  240.26 ms │                                          242.61 ms │    no change │
│ QQuery 48 │   96.73 ms │                                           97.04 ms │    no change │
│ QQuery 49 │   76.47 ms │                                           76.18 ms │    no change │
│ QQuery 50 │   59.56 ms │                                           59.49 ms │    no change │
│ QQuery 51 │   91.92 ms │                                           91.76 ms │    no change │
│ QQuery 52 │   24.41 ms │                                           24.68 ms │    no change │
│ QQuery 53 │   30.41 ms │                                           29.59 ms │    no change │
│ QQuery 54 │   55.05 ms │                                           55.07 ms │    no change │
│ QQuery 55 │   23.71 ms │                                           23.47 ms │    no change │
│ QQuery 56 │   39.05 ms │                                           38.95 ms │    no change │
│ QQuery 57 │  179.80 ms │                                          179.10 ms │    no change │
│ QQuery 58 │  113.77 ms │                                          114.01 ms │    no change │
│ QQuery 59 │  118.47 ms │                                          118.49 ms │    no change │
│ QQuery 60 │   39.55 ms │                                           39.61 ms │    no change │
│ QQuery 61 │   12.38 ms │                                           12.63 ms │    no change │
│ QQuery 62 │   46.88 ms │                                           46.98 ms │    no change │
│ QQuery 63 │   29.65 ms │                                           29.91 ms │    no change │
│ QQuery 64 │  411.70 ms │                                          411.54 ms │    no change │
│ QQuery 65 │  125.51 ms │                                          126.53 ms │    no change │
│ QQuery 66 │   81.71 ms │                                           81.75 ms │    no change │
│ QQuery 67 │  256.03 ms │                                          257.23 ms │    no change │
│ QQuery 68 │   12.21 ms │                                           12.36 ms │    no change │
│ QQuery 69 │   58.04 ms │                                           57.33 ms │    no change │
│ QQuery 70 │  106.81 ms │                                          108.14 ms │    no change │
│ QQuery 71 │   35.88 ms │                                           36.37 ms │    no change │
│ QQuery 72 │ 1949.67 ms │                                         2076.75 ms │ 1.07x slower │
│ QQuery 73 │   10.01 ms │                                            9.98 ms │    no change │
│ QQuery 74 │  178.77 ms │                                          183.25 ms │    no change │
│ QQuery 75 │  148.66 ms │                                          149.61 ms │    no change │
│ QQuery 76 │   36.06 ms │                                           35.79 ms │    no change │
│ QQuery 77 │   61.94 ms │                                           61.93 ms │    no change │
│ QQuery 78 │  199.11 ms │                                          201.32 ms │    no change │
│ QQuery 79 │   67.98 ms │                                           67.26 ms │    no change │
│ QQuery 80 │   99.66 ms │                                           99.20 ms │    no change │
│ QQuery 81 │   26.59 ms │                                           26.59 ms │    no change │
│ QQuery 82 │   16.61 ms │                                           17.23 ms │    no change │
│ QQuery 83 │   39.93 ms │                                           40.82 ms │    no change │
│ QQuery 84 │   30.13 ms │                                           30.45 ms │    no change │
│ QQuery 85 │  107.64 ms │                                          107.19 ms │    no change │
│ QQuery 86 │   25.55 ms │                                           26.73 ms │    no change │
│ QQuery 87 │   62.77 ms │                                           64.80 ms │    no change │
│ QQuery 88 │   63.70 ms │                                           63.71 ms │    no change │
│ QQuery 89 │   35.90 ms │                                           35.96 ms │    no change │
│ QQuery 90 │   17.22 ms │                                           17.17 ms │    no change │
│ QQuery 91 │   46.27 ms │                                           47.06 ms │    no change │
│ QQuery 92 │   29.58 ms │                                           30.50 ms │    no change │
│ QQuery 93 │   51.01 ms │                                           50.24 ms │    no change │
│ QQuery 94 │   38.64 ms │                                           38.03 ms │    no change │
│ QQuery 95 │   80.50 ms │                                           81.06 ms │    no change │
│ QQuery 96 │   24.19 ms │                                           24.36 ms │    no change │
│ QQuery 97 │   47.73 ms │                                           47.35 ms │    no change │
│ QQuery 98 │   43.42 ms │                                           43.35 ms │    no change │
│ QQuery 99 │   70.96 ms │                                           71.58 ms │    no change │
└───────────┴────────────┴────────────────────────────────────────────────────┴──────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary                                                 ┃           ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD)                                                 │ 9729.16ms │
│ Total Time (feat_hash-join-dynamic-filter-with-range-partition)   │ 9886.63ms │
│ Average Time (HEAD)                                               │   98.27ms │
│ Average Time (feat_hash-join-dynamic-filter-with-range-partition) │   99.86ms │
│ Queries Faster                                                    │         0 │
│ Queries Slower                                                    │         1 │
│ Queries with No Change                                            │        98 │
│ Queries with Failure                                              │         0 │
└───────────────────────────────────────────────────────────────────┴───────────┘

Distribution per query (min / mean ±stddev / max):

Comparing HEAD and feat_hash-join-dynamic-filter-with-range-partition
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                                  HEAD ┃ feat_hash-join-dynamic-filter-with-range-partition ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │           5.54 / 6.05 ±0.89 / 7.82 ms │                        5.57 / 6.10 ±0.89 / 7.88 ms │     no change │
│ QQuery 2  │        79.81 / 80.08 ±0.30 / 80.57 ms │                     80.15 / 80.44 ±0.20 / 80.69 ms │     no change │
│ QQuery 3  │        29.39 / 29.66 ±0.16 / 29.86 ms │                     29.27 / 29.47 ±0.22 / 29.86 ms │     no change │
│ QQuery 4  │     509.73 / 513.93 ±3.53 / 518.17 ms │                  504.60 / 507.67 ±1.75 / 509.14 ms │     no change │
│ QQuery 5  │        52.93 / 53.29 ±0.27 / 53.68 ms │                     52.52 / 53.09 ±0.30 / 53.40 ms │     no change │
│ QQuery 6  │        36.78 / 37.25 ±0.43 / 38.00 ms │                     37.18 / 37.64 ±0.49 / 38.42 ms │     no change │
│ QQuery 7  │       95.03 / 97.63 ±4.92 / 107.47 ms │                    95.27 / 96.99 ±1.78 / 100.43 ms │     no change │
│ QQuery 8  │        37.47 / 37.73 ±0.22 / 38.03 ms │                     37.80 / 38.11 ±0.34 / 38.70 ms │     no change │
│ QQuery 9  │        51.92 / 53.61 ±1.03 / 54.79 ms │                     53.43 / 54.63 ±1.27 / 57.08 ms │     no change │
│ QQuery 10 │        63.41 / 63.91 ±0.28 / 64.22 ms │                     63.33 / 63.54 ±0.18 / 63.82 ms │     no change │
│ QQuery 11 │     319.21 / 324.61 ±4.18 / 331.13 ms │                  316.99 / 321.87 ±4.05 / 327.93 ms │     no change │
│ QQuery 12 │        28.86 / 29.26 ±0.25 / 29.58 ms │                     29.00 / 29.45 ±0.32 / 29.86 ms │     no change │
│ QQuery 13 │     118.68 / 121.55 ±4.03 / 129.53 ms │                  119.40 / 120.02 ±0.63 / 121.09 ms │     no change │
│ QQuery 14 │     417.31 / 419.32 ±2.23 / 422.24 ms │                  421.86 / 424.48 ±2.84 / 428.83 ms │     no change │
│ QQuery 15 │        58.58 / 59.40 ±0.53 / 60.13 ms │                     58.47 / 59.28 ±0.79 / 60.40 ms │     no change │
│ QQuery 16 │           6.75 / 6.91 ±0.25 / 7.40 ms │                        6.78 / 6.90 ±0.17 / 7.24 ms │     no change │
│ QQuery 17 │        79.54 / 81.92 ±1.89 / 84.51 ms │                     80.44 / 82.00 ±1.65 / 85.17 ms │     no change │
│ QQuery 18 │     122.08 / 123.88 ±1.42 / 126.32 ms │                  123.65 / 124.87 ±0.76 / 125.85 ms │     no change │
│ QQuery 19 │        41.75 / 42.37 ±0.62 / 43.44 ms │                     41.83 / 42.07 ±0.20 / 42.34 ms │     no change │
│ QQuery 20 │        36.37 / 37.20 ±0.84 / 38.60 ms │                     36.91 / 38.04 ±1.23 / 40.33 ms │     no change │
│ QQuery 21 │        17.59 / 17.73 ±0.10 / 17.83 ms │                     17.71 / 17.89 ±0.14 / 18.13 ms │     no change │
│ QQuery 22 │        64.48 / 65.27 ±0.79 / 66.46 ms │                     64.92 / 65.89 ±1.11 / 67.45 ms │     no change │
│ QQuery 23 │     347.75 / 352.23 ±4.87 / 361.29 ms │                  348.82 / 356.51 ±4.44 / 361.89 ms │     no change │
│ QQuery 24 │     224.24 / 228.10 ±3.14 / 232.45 ms │                  224.79 / 228.09 ±3.17 / 233.13 ms │     no change │
│ QQuery 25 │     109.31 / 111.77 ±1.70 / 113.89 ms │                  111.26 / 112.09 ±0.67 / 113.17 ms │     no change │
│ QQuery 26 │        58.67 / 59.50 ±0.96 / 61.29 ms │                     58.70 / 59.76 ±1.31 / 62.31 ms │     no change │
│ QQuery 27 │           6.31 / 6.46 ±0.17 / 6.77 ms │                        6.41 / 6.56 ±0.10 / 6.72 ms │     no change │
│ QQuery 28 │        56.26 / 59.45 ±2.20 / 61.75 ms │                     57.41 / 60.69 ±1.65 / 61.72 ms │     no change │
│ QQuery 29 │      96.53 / 100.12 ±3.63 / 106.71 ms │                   98.23 / 100.87 ±3.07 / 106.36 ms │     no change │
│ QQuery 30 │        33.07 / 33.75 ±0.56 / 34.63 ms │                     33.27 / 33.40 ±0.09 / 33.54 ms │     no change │
│ QQuery 31 │     111.18 / 112.31 ±0.69 / 113.00 ms │                  113.05 / 113.26 ±0.27 / 113.79 ms │     no change │
│ QQuery 32 │        20.53 / 20.74 ±0.17 / 20.96 ms │                     20.85 / 21.19 ±0.52 / 22.22 ms │     no change │
│ QQuery 33 │        39.20 / 41.54 ±2.84 / 45.67 ms │                     39.14 / 40.76 ±1.77 / 44.12 ms │     no change │
│ QQuery 34 │        10.14 / 10.54 ±0.29 / 10.97 ms │                     10.30 / 10.86 ±0.47 / 11.48 ms │     no change │
│ QQuery 35 │        74.33 / 75.13 ±0.45 / 75.67 ms │                     72.79 / 74.81 ±1.49 / 77.07 ms │     no change │
│ QQuery 36 │           5.86 / 5.96 ±0.15 / 6.24 ms │                        5.82 / 5.97 ±0.19 / 6.35 ms │     no change │
│ QQuery 37 │           7.00 / 7.13 ±0.09 / 7.23 ms │                        7.06 / 7.10 ±0.03 / 7.14 ms │     no change │
│ QQuery 38 │        62.66 / 64.26 ±1.28 / 66.50 ms │                     63.47 / 64.83 ±2.00 / 68.80 ms │     no change │
│ QQuery 39 │        91.86 / 92.27 ±0.22 / 92.49 ms │                     91.83 / 92.33 ±0.43 / 93.13 ms │     no change │
│ QQuery 40 │        23.56 / 23.94 ±0.42 / 24.59 ms │                     23.71 / 23.81 ±0.08 / 23.94 ms │     no change │
│ QQuery 41 │        11.78 / 11.96 ±0.16 / 12.19 ms │                     11.92 / 12.14 ±0.17 / 12.44 ms │     no change │
│ QQuery 42 │        23.88 / 24.38 ±0.34 / 24.77 ms │                     24.21 / 24.88 ±0.52 / 25.73 ms │     no change │
│ QQuery 43 │           5.02 / 5.15 ±0.14 / 5.42 ms │                        5.12 / 5.22 ±0.12 / 5.44 ms │     no change │
│ QQuery 44 │           9.23 / 9.45 ±0.16 / 9.63 ms │                       9.54 / 9.73 ±0.16 / 10.01 ms │     no change │
│ QQuery 45 │        39.35 / 40.77 ±1.95 / 44.59 ms │                     39.56 / 40.65 ±1.25 / 43.10 ms │     no change │
│ QQuery 46 │        12.06 / 13.49 ±1.32 / 16.00 ms │                     12.22 / 12.84 ±0.44 / 13.61 ms │     no change │
│ QQuery 47 │     240.26 / 243.78 ±2.81 / 246.82 ms │                 242.61 / 259.08 ±13.57 / 274.68 ms │  1.06x slower │
│ QQuery 48 │        96.73 / 97.32 ±0.86 / 99.01 ms │                    97.04 / 98.60 ±1.53 / 100.77 ms │     no change │
│ QQuery 49 │        76.47 / 77.18 ±0.79 / 78.59 ms │                     76.18 / 78.96 ±2.11 / 82.69 ms │     no change │
│ QQuery 50 │        59.56 / 59.83 ±0.24 / 60.20 ms │                     59.49 / 60.39 ±0.63 / 61.15 ms │     no change │
│ QQuery 51 │        91.92 / 93.31 ±0.81 / 94.16 ms │                    91.76 / 95.51 ±4.66 / 103.87 ms │     no change │
│ QQuery 52 │        24.41 / 27.03 ±3.15 / 32.93 ms │                     24.68 / 25.62 ±0.62 / 26.37 ms │ +1.06x faster │
│ QQuery 53 │        30.41 / 30.69 ±0.34 / 31.30 ms │                     29.59 / 30.09 ±0.57 / 31.21 ms │     no change │
│ QQuery 54 │        55.05 / 55.58 ±0.48 / 56.32 ms │                     55.07 / 55.25 ±0.10 / 55.34 ms │     no change │
│ QQuery 55 │        23.71 / 23.99 ±0.19 / 24.24 ms │                     23.47 / 23.93 ±0.47 / 24.56 ms │     no change │
│ QQuery 56 │        39.05 / 39.54 ±0.39 / 40.23 ms │                     38.95 / 39.67 ±0.57 / 40.71 ms │     no change │
│ QQuery 57 │     179.80 / 183.01 ±4.33 / 191.58 ms │                  179.10 / 182.02 ±3.46 / 188.83 ms │     no change │
│ QQuery 58 │     113.77 / 116.04 ±2.62 / 119.98 ms │                  114.01 / 115.95 ±2.45 / 120.69 ms │     no change │
│ QQuery 59 │     118.47 / 119.11 ±0.46 / 119.71 ms │                  118.49 / 118.87 ±0.22 / 119.09 ms │     no change │
│ QQuery 60 │        39.55 / 41.08 ±1.82 / 44.19 ms │                     39.61 / 40.79 ±1.04 / 42.51 ms │     no change │
│ QQuery 61 │        12.38 / 12.47 ±0.10 / 12.66 ms │                     12.63 / 12.79 ±0.14 / 13.04 ms │     no change │
│ QQuery 62 │        46.88 / 47.06 ±0.15 / 47.25 ms │                     46.98 / 47.56 ±0.38 / 48.02 ms │     no change │
│ QQuery 63 │        29.65 / 30.18 ±0.52 / 31.09 ms │                     29.91 / 30.21 ±0.18 / 30.43 ms │     no change │
│ QQuery 64 │     411.70 / 414.36 ±3.01 / 420.10 ms │                  411.54 / 414.99 ±2.84 / 419.36 ms │     no change │
│ QQuery 65 │     125.51 / 129.31 ±4.12 / 136.62 ms │                  126.53 / 128.69 ±1.77 / 130.75 ms │     no change │
│ QQuery 66 │        81.71 / 82.09 ±0.28 / 82.40 ms │                     81.75 / 82.18 ±0.41 / 82.93 ms │     no change │
│ QQuery 67 │     256.03 / 259.04 ±2.59 / 263.73 ms │                  257.23 / 260.55 ±3.37 / 266.57 ms │     no change │
│ QQuery 68 │        12.21 / 12.31 ±0.06 / 12.39 ms │                     12.36 / 12.52 ±0.16 / 12.82 ms │     no change │
│ QQuery 69 │        58.04 / 60.87 ±4.47 / 69.77 ms │                     57.33 / 58.21 ±0.90 / 59.92 ms │     no change │
│ QQuery 70 │     106.81 / 109.95 ±4.24 / 118.32 ms │                  108.14 / 110.69 ±3.83 / 118.22 ms │     no change │
│ QQuery 71 │        35.88 / 37.10 ±2.35 / 41.80 ms │                     36.37 / 38.90 ±3.93 / 46.70 ms │     no change │
│ QQuery 72 │ 1949.67 / 2068.42 ±78.66 / 2163.65 ms │              2076.75 / 2120.03 ±38.31 / 2183.17 ms │     no change │
│ QQuery 73 │        10.01 / 10.18 ±0.17 / 10.40 ms │                      9.98 / 10.23 ±0.21 / 10.48 ms │     no change │
│ QQuery 74 │     178.77 / 180.17 ±0.96 / 181.38 ms │                  183.25 / 188.88 ±5.54 / 198.91 ms │     no change │
│ QQuery 75 │     148.66 / 151.24 ±1.88 / 153.90 ms │                  149.61 / 152.53 ±1.96 / 154.90 ms │     no change │
│ QQuery 76 │        36.06 / 37.62 ±2.23 / 42.04 ms │                     35.79 / 36.29 ±0.41 / 36.84 ms │     no change │
│ QQuery 77 │        61.94 / 62.30 ±0.24 / 62.66 ms │                     61.93 / 62.57 ±0.44 / 63.19 ms │     no change │
│ QQuery 78 │     199.11 / 203.13 ±4.67 / 212.28 ms │                  201.32 / 204.89 ±3.12 / 209.66 ms │     no change │
│ QQuery 79 │        67.98 / 68.87 ±1.23 / 71.29 ms │                     67.26 / 68.57 ±1.40 / 70.98 ms │     no change │
│ QQuery 80 │      99.66 / 103.33 ±3.90 / 110.49 ms │                   99.20 / 101.04 ±1.91 / 104.59 ms │     no change │
│ QQuery 81 │        26.59 / 26.76 ±0.26 / 27.26 ms │                     26.59 / 26.86 ±0.21 / 27.08 ms │     no change │
│ QQuery 82 │        16.61 / 16.75 ±0.08 / 16.83 ms │                     17.23 / 19.38 ±2.52 / 22.54 ms │  1.16x slower │
│ QQuery 83 │        39.93 / 41.36 ±2.40 / 46.15 ms │                     40.82 / 42.73 ±2.70 / 48.06 ms │     no change │
│ QQuery 84 │        30.13 / 30.98 ±1.32 / 33.59 ms │                     30.45 / 30.77 ±0.23 / 31.14 ms │     no change │
│ QQuery 85 │     107.64 / 108.35 ±0.43 / 108.93 ms │                  107.19 / 108.07 ±1.06 / 110.09 ms │     no change │
│ QQuery 86 │        25.55 / 25.85 ±0.28 / 26.36 ms │                     26.73 / 28.69 ±3.08 / 34.82 ms │  1.11x slower │
│ QQuery 87 │        62.77 / 63.90 ±0.90 / 65.49 ms │                     64.80 / 65.65 ±0.73 / 66.99 ms │     no change │
│ QQuery 88 │        63.70 / 65.61 ±2.11 / 69.13 ms │                     63.71 / 64.07 ±0.31 / 64.63 ms │     no change │
│ QQuery 89 │        35.90 / 36.60 ±0.37 / 36.90 ms │                     35.96 / 36.41 ±0.38 / 37.10 ms │     no change │
│ QQuery 90 │        17.22 / 17.34 ±0.08 / 17.48 ms │                     17.17 / 19.50 ±3.82 / 27.14 ms │  1.12x slower │
│ QQuery 91 │        46.27 / 46.60 ±0.19 / 46.83 ms │                     47.06 / 48.16 ±1.10 / 50.26 ms │     no change │
│ QQuery 92 │        29.58 / 29.83 ±0.19 / 30.06 ms │                     30.50 / 31.04 ±0.58 / 32.04 ms │     no change │
│ QQuery 93 │        51.01 / 52.95 ±1.80 / 55.94 ms │                     50.24 / 52.12 ±1.20 / 53.77 ms │     no change │
│ QQuery 94 │        38.64 / 39.15 ±0.54 / 39.88 ms │                     38.03 / 38.58 ±0.30 / 38.91 ms │     no change │
│ QQuery 95 │        80.50 / 80.65 ±0.18 / 81.01 ms │                     81.06 / 84.23 ±2.81 / 87.58 ms │     no change │
│ QQuery 96 │        24.19 / 24.44 ±0.14 / 24.60 ms │                     24.36 / 24.56 ±0.15 / 24.72 ms │     no change │
│ QQuery 97 │        47.73 / 49.73 ±2.22 / 53.02 ms │                     47.35 / 47.73 ±0.25 / 48.00 ms │     no change │
│ QQuery 98 │        43.42 / 44.07 ±0.62 / 45.24 ms │                     43.35 / 44.63 ±0.78 / 45.45 ms │     no change │
│ QQuery 99 │        70.96 / 71.43 ±0.28 / 71.80 ms │                     71.58 / 73.49 ±2.51 / 78.26 ms │     no change │
└───────────┴───────────────────────────────────────┴────────────────────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary                                                 ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)                                                 │  9972.87ms │
│ Total Time (feat_hash-join-dynamic-filter-with-range-partition)   │ 10072.51ms │
│ Average Time (HEAD)                                               │   100.74ms │
│ Average Time (feat_hash-join-dynamic-filter-with-range-partition) │   101.74ms │
│ Queries Faster                                                    │          1 │
│ Queries Slower                                                    │          4 │
│ Queries with No Change                                            │         94 │
│ Queries with Failure                                              │          0 │
└───────────────────────────────────────────────────────────────────┴────────────┘

Resource Usage

tpcds — base (merge-base)

Metric Value
Wall time 55.0s
Peak memory 2.1 GiB
Avg memory 1.5 GiB
CPU user 217.9s
CPU sys 6.1s
Peak spill 0 B

tpcds — branch

Metric Value
Wall time 55.0s
Peak memory 2.2 GiB
Avg memory 1.5 GiB
CPU user 225.4s
CPU sys 6.2s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance: c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing feat/hash-join-dynamic-filter-with-range-partition (7274de3) to a05388e (merge-base) diff

Run configuration
run benchmark clickbench_partitioned
CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected
Details

Comparing HEAD and feat_hash-join-dynamic-filter-with-range-partition
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃       HEAD ┃ feat_hash-join-dynamic-filter-with-range-partition ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0  │    1.29 ms │                                            1.24 ms │     no change │
│ QQuery 1  │   12.31 ms │                                           12.12 ms │     no change │
│ QQuery 2  │   37.59 ms │                                           36.49 ms │     no change │
│ QQuery 3  │   32.77 ms │                                           32.11 ms │     no change │
│ QQuery 4  │  256.95 ms │                                          258.05 ms │     no change │
│ QQuery 5  │  302.23 ms │                                          288.05 ms │     no change │
│ QQuery 6  │    1.36 ms │                                            1.33 ms │     no change │
│ QQuery 7  │   14.31 ms │                                           13.75 ms │     no change │
│ QQuery 8  │  375.63 ms │                                          371.48 ms │     no change │
│ QQuery 9  │  520.32 ms │                                          533.59 ms │     no change │
│ QQuery 10 │   70.91 ms │                                           73.70 ms │     no change │
│ QQuery 11 │   87.93 ms │                                           85.78 ms │     no change │
│ QQuery 12 │  278.03 ms │                                          307.15 ms │  1.10x slower │
│ QQuery 13 │  408.24 ms │                                          410.86 ms │     no change │
│ QQuery 14 │  321.54 ms │                                          319.38 ms │     no change │
│ QQuery 15 │  313.02 ms │                                          328.16 ms │     no change │
│ QQuery 16 │  695.61 ms │                                          702.40 ms │     no change │
│ QQuery 17 │  696.86 ms │                                          691.52 ms │     no change │
│ QQuery 18 │ 1437.95 ms │                                         1445.17 ms │     no change │
│ QQuery 19 │   29.23 ms │                                           29.46 ms │     no change │
│ QQuery 20 │  534.13 ms │                                          535.11 ms │     no change │
│ QQuery 21 │  529.83 ms │                                          538.54 ms │     no change │
│ QQuery 22 │ 1043.17 ms │                                         1025.52 ms │     no change │
│ QQuery 23 │ 3277.30 ms │                                         3264.77 ms │     no change │
│ QQuery 24 │   43.08 ms │                                           43.45 ms │     no change │
│ QQuery 25 │  116.58 ms │                                          115.23 ms │     no change │
│ QQuery 26 │   43.87 ms │                                           42.37 ms │     no change │
│ QQuery 27 │  534.29 ms │                                          525.78 ms │     no change │
│ QQuery 28 │ 2993.75 ms │                                         3007.44 ms │     no change │
│ QQuery 29 │   42.85 ms │                                           43.10 ms │     no change │
│ QQuery 30 │  334.35 ms │                                          339.47 ms │     no change │
│ QQuery 31 │  300.20 ms │                                          309.09 ms │     no change │
│ QQuery 32 │ 1078.14 ms │                                         1035.17 ms │     no change │
│ QQuery 33 │ 1677.90 ms │                                         1681.60 ms │     no change │
│ QQuery 34 │ 1571.91 ms │                                         1691.84 ms │  1.08x slower │
│ QQuery 35 │  295.27 ms │                                          329.81 ms │  1.12x slower │
│ QQuery 36 │   73.53 ms │                                           74.56 ms │     no change │
│ QQuery 37 │   38.33 ms │                                           38.82 ms │     no change │
│ QQuery 38 │   44.12 ms │                                           42.69 ms │     no change │
│ QQuery 39 │  160.82 ms │                                          152.03 ms │ +1.06x faster │
│ QQuery 40 │   16.04 ms │                                           14.41 ms │ +1.11x faster │
│ QQuery 41 │   14.62 ms │                                           15.32 ms │     no change │
│ QQuery 42 │   13.26 ms │                                           14.82 ms │  1.12x slower │
└───────────┴────────────┴────────────────────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary                                                 ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)                                                 │ 20671.44ms │
│ Total Time (feat_hash-join-dynamic-filter-with-range-partition)   │ 20822.73ms │
│ Average Time (HEAD)                                               │   480.73ms │
│ Average Time (feat_hash-join-dynamic-filter-with-range-partition) │   484.25ms │
│ Queries Faster                                                    │          2 │
│ Queries Slower                                                    │          4 │
│ Queries with No Change                                            │         37 │
│ Queries with Failure                                              │          0 │
└───────────────────────────────────────────────────────────────────┴────────────┘

Distribution per query (min / mean ±stddev / max):

Comparing HEAD and feat_hash-join-dynamic-filter-with-range-partition
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                                  HEAD ┃ feat_hash-join-dynamic-filter-with-range-partition ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0  │          1.29 / 4.31 ±5.85 / 16.00 ms │                       1.24 / 3.97 ±5.37 / 14.72 ms │ +1.09x faster │
│ QQuery 1  │        12.31 / 12.89 ±0.32 / 13.16 ms │                     12.12 / 12.28 ±0.10 / 12.43 ms │     no change │
│ QQuery 2  │        37.59 / 38.01 ±0.42 / 38.74 ms │                     36.49 / 36.74 ±0.23 / 37.16 ms │     no change │
│ QQuery 3  │        32.77 / 33.46 ±0.65 / 34.66 ms │                     32.11 / 32.81 ±0.58 / 33.60 ms │     no change │
│ QQuery 4  │     256.95 / 266.54 ±5.15 / 270.94 ms │                  258.05 / 261.18 ±2.72 / 265.25 ms │     no change │
│ QQuery 5  │     302.23 / 307.72 ±2.98 / 310.51 ms │                  288.05 / 301.59 ±7.09 / 307.57 ms │     no change │
│ QQuery 6  │           1.36 / 1.54 ±0.26 / 2.06 ms │                        1.33 / 1.51 ±0.27 / 2.03 ms │     no change │
│ QQuery 7  │        14.31 / 14.64 ±0.18 / 14.82 ms │                     13.75 / 14.22 ±0.26 / 14.52 ms │     no change │
│ QQuery 8  │     375.63 / 378.84 ±2.94 / 383.78 ms │                  371.48 / 379.39 ±5.18 / 386.38 ms │     no change │
│ QQuery 9  │     520.32 / 526.44 ±4.58 / 533.01 ms │                  533.59 / 542.49 ±6.24 / 552.66 ms │     no change │
│ QQuery 10 │        70.91 / 74.87 ±5.13 / 84.36 ms │                     73.70 / 75.37 ±1.51 / 78.18 ms │     no change │
│ QQuery 11 │       87.93 / 90.98 ±4.80 / 100.49 ms │                     85.78 / 87.42 ±1.74 / 90.68 ms │     no change │
│ QQuery 12 │    278.03 / 300.13 ±11.56 / 311.68 ms │                  307.15 / 310.17 ±4.52 / 319.09 ms │     no change │
│ QQuery 13 │    408.24 / 422.63 ±15.36 / 452.23 ms │                  410.86 / 424.22 ±7.25 / 430.56 ms │     no change │
│ QQuery 14 │     321.54 / 327.12 ±5.65 / 336.93 ms │                  319.38 / 322.20 ±2.01 / 325.25 ms │     no change │
│ QQuery 15 │    313.02 / 322.73 ±11.04 / 343.03 ms │                 328.16 / 343.33 ±13.04 / 358.89 ms │  1.06x slower │
│ QQuery 16 │     695.61 / 703.79 ±7.67 / 716.58 ms │                  702.40 / 708.64 ±5.72 / 718.71 ms │     no change │
│ QQuery 17 │     696.86 / 704.70 ±5.78 / 713.25 ms │                 691.52 / 717.51 ±17.21 / 740.64 ms │     no change │
│ QQuery 18 │ 1437.95 / 1458.17 ±12.86 / 1478.04 ms │              1445.17 / 1470.85 ±19.36 / 1500.53 ms │     no change │
│ QQuery 19 │       29.23 / 36.75 ±10.71 / 56.90 ms │                     29.46 / 35.08 ±6.50 / 47.26 ms │     no change │
│ QQuery 20 │     534.13 / 544.36 ±9.41 / 560.75 ms │                  535.11 / 541.36 ±7.61 / 556.34 ms │     no change │
│ QQuery 21 │     529.83 / 536.10 ±4.33 / 541.11 ms │                 538.54 / 550.03 ±11.47 / 570.88 ms │     no change │
│ QQuery 22 │ 1043.17 / 1061.56 ±12.09 / 1080.07 ms │               1025.52 / 1031.66 ±5.51 / 1041.57 ms │     no change │
│ QQuery 23 │ 3277.30 / 3316.28 ±35.03 / 3370.62 ms │              3264.77 / 3301.69 ±25.09 / 3325.73 ms │     no change │
│ QQuery 24 │        43.08 / 45.83 ±5.20 / 56.23 ms │                     43.45 / 45.79 ±3.39 / 52.31 ms │     no change │
│ QQuery 25 │     116.58 / 120.59 ±4.69 / 129.43 ms │                  115.23 / 118.67 ±4.93 / 128.33 ms │     no change │
│ QQuery 26 │        43.87 / 46.52 ±3.93 / 54.23 ms │                     42.37 / 48.29 ±6.96 / 59.78 ms │     no change │
│ QQuery 27 │     534.29 / 541.76 ±4.57 / 546.01 ms │                  525.78 / 534.97 ±5.98 / 542.11 ms │     no change │
│ QQuery 28 │ 2993.75 / 3058.68 ±50.14 / 3123.72 ms │              3007.44 / 3070.25 ±38.08 / 3117.66 ms │     no change │
│ QQuery 29 │        42.85 / 43.28 ±0.48 / 44.21 ms │                     43.10 / 47.10 ±7.72 / 62.55 ms │  1.09x slower │
│ QQuery 30 │    334.35 / 349.26 ±16.89 / 382.11 ms │                 339.47 / 351.60 ±11.41 / 370.61 ms │     no change │
│ QQuery 31 │    300.20 / 314.48 ±16.34 / 339.42 ms │                  309.09 / 317.12 ±7.67 / 331.67 ms │     no change │
│ QQuery 32 │ 1078.14 / 1099.88 ±15.51 / 1119.38 ms │              1035.17 / 1077.66 ±37.05 / 1144.49 ms │     no change │
│ QQuery 33 │ 1677.90 / 1707.12 ±30.35 / 1765.13 ms │              1681.60 / 1721.71 ±26.94 / 1760.59 ms │     no change │
│ QQuery 34 │ 1571.91 / 1693.88 ±63.86 / 1750.66 ms │              1691.84 / 1716.90 ±30.34 / 1776.66 ms │     no change │
│ QQuery 35 │    295.27 / 366.00 ±57.18 / 469.12 ms │                 329.81 / 349.61 ±17.75 / 382.32 ms │     no change │
│ QQuery 36 │        73.53 / 80.08 ±6.73 / 91.48 ms │                     74.56 / 79.41 ±4.53 / 87.03 ms │     no change │
│ QQuery 37 │        38.33 / 39.05 ±0.65 / 40.17 ms │                     38.82 / 40.61 ±1.12 / 42.20 ms │     no change │
│ QQuery 38 │        44.12 / 50.25 ±5.36 / 58.07 ms │                     42.69 / 45.77 ±2.35 / 48.33 ms │ +1.10x faster │
│ QQuery 39 │    160.82 / 174.30 ±12.37 / 192.63 ms │                 152.03 / 165.34 ±13.91 / 188.83 ms │ +1.05x faster │
│ QQuery 40 │        16.04 / 18.24 ±4.24 / 26.71 ms │                     14.41 / 14.74 ±0.31 / 15.33 ms │ +1.24x faster │
│ QQuery 41 │        14.62 / 15.45 ±0.47 / 16.07 ms │                     15.32 / 19.64 ±4.24 / 25.96 ms │  1.27x slower │
│ QQuery 42 │        13.26 / 14.18 ±0.73 / 14.98 ms │                     14.82 / 15.01 ±0.14 / 15.25 ms │  1.06x slower │
└───────────┴───────────────────────────────────────┴────────────────────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary                                                 ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)                                                 │ 21263.38ms │
│ Total Time (feat_hash-join-dynamic-filter-with-range-partition)   │ 21285.92ms │
│ Average Time (HEAD)                                               │   494.50ms │
│ Average Time (feat_hash-join-dynamic-filter-with-range-partition) │   495.02ms │
│ Queries Faster                                                    │          4 │
│ Queries Slower                                                    │          4 │
│ Queries with No Change                                            │         35 │
│ Queries with Failure                                              │          0 │
└───────────────────────────────────────────────────────────────────┴────────────┘

Resource Usage

clickbench_partitioned — base (merge-base)

Metric Value
Wall time 110.0s
Peak memory 12.0 GiB
Avg memory 4.6 GiB
CPU user 1082.4s
CPU sys 83.1s
Peak spill 0 B

clickbench_partitioned — branch

Metric Value
Wall time 110.0s
Peak memory 10.7 GiB
Avg memory 4.1 GiB
CPU user 1079.5s
CPU sys 85.2s
Peak spill 0 B

File an issue against this benchmark runner

@gene-bordegaray

Copy link
Copy Markdown
Contributor

Soemthing I have been thinking about. What would you guys think of creating a range partitioned or partitioned benchmarks similar to tpch or clickbench to be able to track progress on these more easily?

I dont know how serious of an endeavor this would be and we can also lookat what is already available but I think it would be highly valuable

@alamb @adriangb @jayshrivastava

@alamb

alamb commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Soemthing I have been thinking about. What would you guys think of creating a range partitioned or partitioned benchmarks similar to tpch or clickbench to be able to track progress on these more easily?

Yes I think that would be a great idea.

One thing you could perhaps do is use the TPCH queries but repartition the inputs by time (similar how it is done for tpch_sort)

@alamb

alamb commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

run benchmark clickbench_partitioned

@gene-bordegaray

Copy link
Copy Markdown
Contributor

Soemthing I have been thinking about. What would you guys think of creating a range partitioned or partitioned benchmarks similar to tpch or clickbench to be able to track progress on these more easily?

Yes I think that would be a great idea.

One thing you could perhaps do is use the TPCH queries but repartition the inputs by time (similar how it is done for tpch_sort)

@alamb ok great. I was planning on creating a new wave of work for range partitioning like optimizations and benchmarks now that the base is in and this will definitely be on the list. I will create issues for these things and can start some discussions there 👍

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5253824092-1546-7gv6z 6.12.85+ #1 SMP Wed Jun 17 20:31:55 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected

Comparing feat/hash-join-dynamic-filter-with-range-partition (7274de3) to a05388e (merge-base) diff

Run configuration
run benchmark clickbench_partitioned

Results will be posted here when complete


File an issue against this benchmark runner

@peterxcli

Copy link
Copy Markdown
Member Author

One thing you could perhaps do is use the TPCH queries but repartition the inputs by time (similar how it is done for tpch_sort)

#24095

@alamb @gene-bordegaray I created a rough version earlier, happy to refine it together later if that's useful.

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance: c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing feat/hash-join-dynamic-filter-with-range-partition (7274de3) to a05388e (merge-base) diff

Run configuration
run benchmark clickbench_partitioned
CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected
Details

Comparing HEAD and feat_hash-join-dynamic-filter-with-range-partition
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Query     ┃       HEAD ┃ feat_hash-join-dynamic-filter-with-range-partition ┃    Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ QQuery 0  │    1.20 ms │                                            1.22 ms │ no change │
│ QQuery 1  │   11.86 ms │                                           11.76 ms │ no change │
│ QQuery 2  │   36.40 ms │                                           36.20 ms │ no change │
│ QQuery 3  │   30.55 ms │                                           30.63 ms │ no change │
│ QQuery 4  │  225.89 ms │                                          222.77 ms │ no change │
│ QQuery 5  │  272.08 ms │                                          270.50 ms │ no change │
│ QQuery 6  │    1.26 ms │                                            1.27 ms │ no change │
│ QQuery 7  │   13.14 ms │                                           13.19 ms │ no change │
│ QQuery 8  │  328.57 ms │                                          325.09 ms │ no change │
│ QQuery 9  │  453.02 ms │                                          455.17 ms │ no change │
│ QQuery 10 │   68.96 ms │                                           69.59 ms │ no change │
│ QQuery 11 │   80.57 ms │                                           80.49 ms │ no change │
│ QQuery 12 │  266.86 ms │                                          264.39 ms │ no change │
│ QQuery 13 │  364.74 ms │                                          366.84 ms │ no change │
│ QQuery 14 │  282.63 ms │                                          279.22 ms │ no change │
│ QQuery 15 │  266.92 ms │                                          270.29 ms │ no change │
│ QQuery 16 │  617.19 ms │                                          607.27 ms │ no change │
│ QQuery 17 │  620.59 ms │                                          611.97 ms │ no change │
│ QQuery 18 │ 1258.95 ms │                                         1258.21 ms │ no change │
│ QQuery 19 │   26.91 ms │                                           27.16 ms │ no change │
│ QQuery 20 │  510.61 ms │                                          517.04 ms │ no change │
│ QQuery 21 │  511.14 ms │                                          520.29 ms │ no change │
│ QQuery 22 │  979.14 ms │                                          984.70 ms │ no change │
│ QQuery 23 │ 3077.57 ms │                                         3066.88 ms │ no change │
│ QQuery 24 │   41.81 ms │                                           41.56 ms │ no change │
│ QQuery 25 │  109.20 ms │                                          111.15 ms │ no change │
│ QQuery 26 │   41.01 ms │                                           41.52 ms │ no change │
│ QQuery 27 │  514.92 ms │                                          521.02 ms │ no change │
│ QQuery 28 │ 2873.17 ms │                                         2907.03 ms │ no change │
│ QQuery 29 │   40.97 ms │                                           41.08 ms │ no change │
│ QQuery 30 │  297.22 ms │                                          299.48 ms │ no change │
│ QQuery 31 │  279.85 ms │                                          281.52 ms │ no change │
│ QQuery 32 │  924.19 ms │                                          955.44 ms │ no change │
│ QQuery 33 │ 1412.51 ms │                                         1460.47 ms │ no change │
│ QQuery 34 │ 1438.00 ms │                                         1480.98 ms │ no change │
│ QQuery 35 │  275.54 ms │                                          278.14 ms │ no change │
│ QQuery 36 │   64.96 ms │                                           65.13 ms │ no change │
│ QQuery 37 │   34.92 ms │                                           35.35 ms │ no change │
│ QQuery 38 │   39.66 ms │                                           41.18 ms │ no change │
│ QQuery 39 │  144.99 ms │                                          145.14 ms │ no change │
│ QQuery 40 │   13.85 ms │                                           14.25 ms │ no change │
│ QQuery 41 │   13.74 ms │                                           13.60 ms │ no change │
│ QQuery 42 │   13.10 ms │                                           13.31 ms │ no change │
└───────────┴────────────┴────────────────────────────────────────────────────┴───────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary                                                 ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)                                                 │ 18880.37ms │
│ Total Time (feat_hash-join-dynamic-filter-with-range-partition)   │ 19039.50ms │
│ Average Time (HEAD)                                               │   439.08ms │
│ Average Time (feat_hash-join-dynamic-filter-with-range-partition) │   442.78ms │
│ Queries Faster                                                    │          0 │
│ Queries Slower                                                    │          0 │
│ Queries with No Change                                            │         43 │
│ Queries with Failure                                              │          0 │
└───────────────────────────────────────────────────────────────────┴────────────┘

Distribution per query (min / mean ±stddev / max):

Comparing HEAD and feat_hash-join-dynamic-filter-with-range-partition
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                                  HEAD ┃ feat_hash-join-dynamic-filter-with-range-partition ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0  │          1.20 / 3.98 ±5.43 / 14.84 ms │                       1.22 / 3.98 ±5.43 / 14.85 ms │     no change │
│ QQuery 1  │        11.86 / 12.07 ±0.14 / 12.26 ms │                     11.76 / 12.19 ±0.23 / 12.45 ms │     no change │
│ QQuery 2  │        36.40 / 36.59 ±0.17 / 36.91 ms │                     36.20 / 36.50 ±0.30 / 37.07 ms │     no change │
│ QQuery 3  │        30.55 / 31.24 ±0.81 / 32.74 ms │                     30.63 / 30.90 ±0.38 / 31.63 ms │     no change │
│ QQuery 4  │     225.89 / 230.31 ±3.50 / 235.81 ms │                  222.77 / 228.08 ±5.16 / 235.80 ms │     no change │
│ QQuery 5  │     272.08 / 276.25 ±3.17 / 281.12 ms │                  270.50 / 273.57 ±2.06 / 276.58 ms │     no change │
│ QQuery 6  │           1.26 / 1.41 ±0.21 / 1.82 ms │                        1.27 / 1.41 ±0.22 / 1.83 ms │     no change │
│ QQuery 7  │        13.14 / 13.26 ±0.07 / 13.32 ms │                     13.19 / 13.27 ±0.07 / 13.39 ms │     no change │
│ QQuery 8  │     328.57 / 331.50 ±1.87 / 333.46 ms │                  325.09 / 327.36 ±1.48 / 329.62 ms │     no change │
│ QQuery 9  │     453.02 / 460.20 ±6.84 / 472.21 ms │                  455.17 / 461.15 ±3.99 / 466.59 ms │     no change │
│ QQuery 10 │        68.96 / 70.63 ±0.93 / 71.49 ms │                     69.59 / 70.32 ±0.72 / 71.55 ms │     no change │
│ QQuery 11 │        80.57 / 81.73 ±0.67 / 82.49 ms │                     80.49 / 81.42 ±0.55 / 82.12 ms │     no change │
│ QQuery 12 │     266.86 / 271.92 ±3.15 / 276.31 ms │                  264.39 / 270.94 ±5.96 / 278.48 ms │     no change │
│ QQuery 13 │     364.74 / 372.97 ±6.92 / 383.98 ms │                 366.84 / 377.87 ±10.43 / 397.76 ms │     no change │
│ QQuery 14 │     282.63 / 288.05 ±4.24 / 292.86 ms │                  279.22 / 285.48 ±7.49 / 299.91 ms │     no change │
│ QQuery 15 │    266.92 / 278.49 ±10.71 / 295.46 ms │                  270.29 / 281.08 ±8.28 / 292.28 ms │     no change │
│ QQuery 16 │     617.19 / 622.23 ±4.28 / 629.29 ms │                 607.27 / 620.03 ±10.11 / 637.12 ms │     no change │
│ QQuery 17 │     620.59 / 627.42 ±4.28 / 633.75 ms │                 611.97 / 624.93 ±10.05 / 635.52 ms │     no change │
│ QQuery 18 │ 1258.95 / 1273.05 ±16.51 / 1303.51 ms │              1258.21 / 1274.71 ±12.42 / 1293.60 ms │     no change │
│ QQuery 19 │        26.91 / 29.95 ±5.06 / 40.05 ms │                    27.16 / 34.64 ±14.20 / 63.03 ms │  1.16x slower │
│ QQuery 20 │     510.61 / 523.20 ±8.33 / 535.70 ms │                  517.04 / 524.75 ±8.57 / 539.26 ms │     no change │
│ QQuery 21 │     511.14 / 520.23 ±7.64 / 531.66 ms │                  520.29 / 525.19 ±3.88 / 531.08 ms │     no change │
│ QQuery 22 │     979.14 / 985.76 ±6.83 / 998.38 ms │                 984.70 / 997.47 ±8.82 / 1010.45 ms │     no change │
│ QQuery 23 │ 3077.57 / 3096.00 ±23.93 / 3142.89 ms │              3066.88 / 3101.91 ±31.91 / 3153.31 ms │     no change │
│ QQuery 24 │        41.81 / 43.04 ±1.02 / 44.93 ms │                     41.56 / 47.42 ±6.71 / 55.98 ms │  1.10x slower │
│ QQuery 25 │     109.20 / 113.93 ±7.79 / 129.42 ms │                  111.15 / 112.15 ±1.09 / 114.02 ms │     no change │
│ QQuery 26 │        41.01 / 41.35 ±0.29 / 41.81 ms │                     41.52 / 48.54 ±9.94 / 67.58 ms │  1.17x slower │
│ QQuery 27 │     514.92 / 519.65 ±3.42 / 524.34 ms │                  521.02 / 527.74 ±6.44 / 539.31 ms │     no change │
│ QQuery 28 │ 2873.17 / 2914.66 ±26.17 / 2945.17 ms │               2907.03 / 2917.51 ±7.52 / 2929.50 ms │     no change │
│ QQuery 29 │        40.97 / 46.90 ±9.63 / 66.08 ms │                     41.08 / 48.23 ±7.90 / 58.12 ms │     no change │
│ QQuery 30 │     297.22 / 307.80 ±7.02 / 316.35 ms │                  299.48 / 309.83 ±7.54 / 319.24 ms │     no change │
│ QQuery 31 │     279.85 / 292.55 ±7.21 / 298.91 ms │                 281.52 / 295.24 ±11.06 / 306.86 ms │     no change │
│ QQuery 32 │    924.19 / 948.87 ±22.71 / 989.69 ms │                955.44 / 972.83 ±17.68 / 1002.63 ms │     no change │
│ QQuery 33 │ 1412.51 / 1473.91 ±50.91 / 1553.10 ms │              1460.47 / 1482.81 ±17.15 / 1507.71 ms │     no change │
│ QQuery 34 │ 1438.00 / 1486.32 ±37.39 / 1536.28 ms │              1480.98 / 1497.92 ±13.08 / 1512.60 ms │     no change │
│ QQuery 35 │    275.54 / 304.26 ±29.41 / 349.78 ms │                 278.14 / 305.35 ±24.67 / 346.26 ms │     no change │
│ QQuery 36 │        64.96 / 73.14 ±6.66 / 82.27 ms │                     65.13 / 68.63 ±2.99 / 74.15 ms │ +1.07x faster │
│ QQuery 37 │        34.92 / 35.22 ±0.27 / 35.55 ms │                     35.35 / 37.70 ±2.62 / 42.77 ms │  1.07x slower │
│ QQuery 38 │        39.66 / 45.58 ±5.10 / 53.49 ms │                     41.18 / 47.97 ±5.27 / 54.93 ms │  1.05x slower │
│ QQuery 39 │     144.99 / 154.43 ±6.68 / 165.74 ms │                  145.14 / 157.38 ±9.92 / 170.63 ms │     no change │
│ QQuery 40 │        13.85 / 14.20 ±0.30 / 14.69 ms │                     14.25 / 17.71 ±6.21 / 30.11 ms │  1.25x slower │
│ QQuery 41 │        13.74 / 13.84 ±0.09 / 13.98 ms │                     13.60 / 14.84 ±1.51 / 17.78 ms │  1.07x slower │
│ QQuery 42 │        13.10 / 16.06 ±5.41 / 26.87 ms │                     13.31 / 13.42 ±0.07 / 13.50 ms │ +1.20x faster │
└───────────┴───────────────────────────────────────┴────────────────────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary                                                 ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)                                                 │ 19284.13ms │
│ Total Time (feat_hash-join-dynamic-filter-with-range-partition)   │ 19382.39ms │
│ Average Time (HEAD)                                               │   448.47ms │
│ Average Time (feat_hash-join-dynamic-filter-with-range-partition) │   450.75ms │
│ Queries Faster                                                    │          2 │
│ Queries Slower                                                    │          7 │
│ Queries with No Change                                            │         34 │
│ Queries with Failure                                              │          0 │
└───────────────────────────────────────────────────────────────────┴────────────┘

Resource Usage

clickbench_partitioned — base (merge-base)

Metric Value
Wall time 100.0s
Peak memory 11.7 GiB
Avg memory 4.1 GiB
CPU user 989.8s
CPU sys 68.3s
Peak spill 0 B

clickbench_partitioned — branch

Metric Value
Wall time 100.0s
Peak memory 11.1 GiB
Avg memory 4.4 GiB
CPU user 990.1s
CPU sys 71.3s
Peak spill 0 B

File an issue against this benchmark runner

@gene-bordegaray

Copy link
Copy Markdown
Contributor

One thing you could perhaps do is use the TPCH queries but repartition the inputs by time (similar how it is done for tpch_sort)

#24095

@alamb @gene-bordegaray I created a rough version earlier, happy to refine it together later if that's useful.

@peterxcli this is great I will check it out and definitely be part of next wave of work for range

@alamb
alamb added this pull request to the merge queue Aug 11, 2026
@alamb

alamb commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Merging this one in to get us ready for the 55 RC

Merged via the queue into apache:main with commit 618aaff Aug 11, 2026
40 checks passed
@peterxcli
peterxcli deleted the feat/hash-join-dynamic-filter-with-range-partition branch August 12, 2026 07:03
kosiew pushed a commit to kosiew/datafusion that referenced this pull request Aug 12, 2026
## Which issue does this PR close?

- Closes apache#23376.

## Rationale for this change

Partitioned hash joins build one dynamic filter per build partition.
Existing routing uses `hash(key) % N`, which cannot reproduce a Range
partitioning layout.
Compatible Range co-partitioned joins instead need to route probe rows
using their existing ordering and split points.

## What changes are included in this PR?

- Enable dynamic filter pushdown for hash joins with compatible
Range-partitioned inputs.
- Build a searched `CASE` expression that routes probe rows to the
corresponding partition filter using the Range ordering and split
points.
- Move the TopK lexicographic filter builder into the shared ordering
module for reuse.

## Are these changes tested?

unit test.

## Are there any user-facing changes?

Yes. This PR adds `RangeExpr` to the physical-expression protobuf model,
which adds the public `ExprType::RangeExpr` enum variant. Downstream
Rust consumers that exhaustively match `ExprType` must handle the new
variant.

It also enables dynamic-filter pushdown for compatible Range-partitioned
joins.
@peterxcli

Copy link
Copy Markdown
Member Author

@peterxcli this is great I will check it out and definitely be part of next wave of work for range

Thanks @gene-bordegaray. I also commented on a related “signed zero” edge case in: #23854 (comment). Might be good to include in the next wave of work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

auto detected api change Auto detected API change core Core DataFusion crate physical-plan Changes to the physical-plan crate proto Related to proto crate sqllogictest SQL Logic Tests (.slt)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support dynamic filters for range co-partitioned joins